三个用户:SYS、lisi、wangwu

① 系统权限的传递

lisi的初始化系统权限
SQL> select * from user_sys_privs;
USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
PUBLIC CREATE ANY TABLE NO
LISI CREATE SESSION NO
LISI CREATE TABLE NO
LISI UNLIMITED TABLESPACE NO wangwu的初始化系统权限
SQL> select * from user_sys_privs;
USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
PUBLIC CREATE ANY TABLE NO
WANGWU CREATE TABLE NO
WANGWU CREATE SESSION NO
WANGWU UNLIMITED TABLESPACE NO

现在SYS将修改任意表的系统权限赋予lisi

SQL> grant alter any table to lisi;
授权成功。

现在lisi的系统权限变为

SQL> select * from user_sys_privs;

USERNAME                       PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
PUBLIC CREATE ANY TABLE NO
LISI CREATE SESSION NO
LISI ALTER ANY TABLE NO
LISI CREATE TABLE NO
LISI UNLIMITED TABLESPACE NO

注意此时新增项的ADM为NO
现在我们将修改任意表的权限由lisi赋予给wangwu

SQL> grant alter any table to wangwu;
grant alter any table to wangwu
*
第 1 行出现错误:
ORA-01031: 权限不足

表明这样是无法级联授权的,SYS用户在授予lisi权限的时候需要给予管理选项
SYS:

SQL> grant alter any table to lisi with admin option;
授权成功。

lisi:

SQL> select * from user_sys_privs;

USERNAME                       PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
PUBLIC CREATE ANY TABLE NO
LISI CREATE SESSION NO
LISI ALTER ANY TABLE YES
LISI CREATE TABLE NO
LISI UNLIMITED TABLESPACE NO

这时ALTER ANY TABLE一行的ADM是yes,再将权限由lisi赋予给wangwu

SQL> grant alter any table to wangwu;
授权成功。

这时wangwu还能将该权限赋予其他的用户吗?答案是NO

wangwu:

SQL>  select * from user_sys_privs;

USERNAME                       PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
PUBLIC CREATE ANY TABLE NO
WANGWU CREATE TABLE NO
WANGWU CREATE SESSION NO
WANGWU ALTER ANY TABLE NO
WANGWU UNLIMITED TABLESPACE NO

如果需要wangwu也有授予的功能,则lisi授权时需要再加上with admin option

② 对象权限的传递

SYS用户新建一个表obj并将查询的权限赋予lisi

SQL> create table obj(id int);
表已创建。 SQL> grant select on obj to lisi;
授权成功。

lisi查看自己的对象权限

SQL> set linesize 400
SQL> select * from user_tab_privs; GRANTEE LISI
OWNER SYS
TABLE_NAME OBJ
GRANTOR SYS
PRIVILEGE SELECT
GRA NO
HIE NO

将对象权限赋予wangwu需要SYS赋予lisi级联权限

SQL> grant select on obj to lisi with grant option;
授权成功。

wangwu:

SQL> select * from user_tab_privs;

GRANTEE            WANGWU
OWNER SYS
TABLE_NAME USER_OBJECTS
GRANTOR LISI
PRIVILEGE SELECT
GRA NO
HIE NO

同样的,如果需要wangwu也有授予的功能,则lisi授权时需要再加上with grant option。

[oracle] oracle权限传递的更多相关文章

  1. Oracle基础学习4--Oracle权限传递

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/wang379275614/article/details/32215325 以下将用一个实例来解说: ...

  2. Oracle 用户权限管理方法

    Oracle 用户权限管理方法 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最 ...

  3. Oracle用户权限分配

    一.权限分类 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系统权限管理 1.系统权限分类: ...

  4. oracle用户权限

    权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...

  5. oracle数据库权限管理

    权限管理: oracle 9里面默认的三个username和password: sys change_on_install //权限最高的管理员 system manager //普通的管理员 sco ...

  6. java 实现往oracle存储过程中传递array数组类型的参数

    注:本文来源于 <  java 实现往oracle存储过程中传递array数组类型的参数  >最近项目中遇到通过往存储过程传递数组参数的问题, 浪费了N多个小时,终于有点头绪. 具体的代码 ...

  7. oracle 用户 权限

    一. 概述 与权限,角色相关的视图大概有下面这些: DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限 USER_SYS_PRIVS:   当前用户所拥有的系统权限 SESSION_PRIVS ...

  8. Oracle管理监控之Oracle用户权限

    数据字典 1.动态数据字典是以v$xxx开始的数据字典,在数据库中约有150个左右,这些数据字典反映数据库动态运行状况,在不同时间查询会得到不同的结果. 2.DBA数据字典是以DBA_xxx表示,该数 ...

  9. Oracle用户权限及死锁

    Oracle用户权限表 oracle数据库中涉及到用户权限的三个表,dba_users,all_users,user_users有什么区别 dba_开头的是查全库所有的,all_开头的是查当前用户可以 ...

  10. [oracle] 系统权限管理

    1 利用超级用户连接到数据库登录 sqlplus / as sysdba or slqplus SYS/SYSPWD as sysdba 这两个命令的效果是一样的,都是以sysdba的身份使得SYS管 ...

随机推荐

  1. Python练习笔记——计算输入日期为改年的第几天、星期几

    # 输入年月日,如:1995年12月10日,计算是该年的第几天?# 同时计算出当天是星期几? print("请依据提示依次输入您想查询的年 月 日") # 第一段代码块(年月日输入 ...

  2. PO_从PO追溯PR的方式和表(分析)

    2014-06-03 Created By BaoXinjian

  3. PLSQL_统计信息系列07_数据字典统计信息的导出和导入

    2014-05-05 Created By BaoXinjian

  4. 存储映射I/O

    一个进程拥有独立并且连续虚拟地址空间,在32位体系结构中进程的地址空间是4G.不过,内核在管理进程的地址空间时是以内存区域为单位.内存区域是进程整个地址空间中一个独立的内存范围,它在内核中使用vm_a ...

  5. bug list

    机型: Samsung Galaxy S GT-I9000 版本: 2.2.1bug: Couldn't create directory for SharedPreferences file xxx ...

  6. NewsLetter001

    http://www.learn-english-today.com/ Project management - Iron out problems. – resolve issues. Critic ...

  7. Linux安装mysql——源码安装

    1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件 (1)先安装cmake(mysql5.5以后是通过cmake来编译的) [root@ rhel5 ...

  8. JDK1.5新特性,基础类库篇,调用外部命令类(ProcessBuilder)用法

    一. 背景 ProcessBuilder类是用来创建操作系统进程的.与Runtime.exec相比,它提供了更加方便的方法以创建子进程. 每个ProcessBuilder实例管理着一个进程属性的集合. ...

  9. Transport level information does not match with SOAP Message namespace URI错误的理解

    理论知识: 转自:http://wso2.com/library/articles/differentiating-between-soap-versions-looking-soap-message ...

  10. [转]编写 android.mk 中 LOCAL_C_INCLUDES 的技巧

    看原文请移步:编写 android.mk 中 LOCAL_C_INCLUDES 的技巧 在编写android.mk的过程中,免不了要修改LOCAL_C_INCLUDES来设置头文件的include目录 ...