三个用户: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. C#模拟PrtScn实现截屏

    有了之前的基础知识了解,如今開始实现PrtScn和Alt+PrtScn. 首先新建一个WPF应用程序,命名为PrintscreenAndAltPrintScreen 导入keybd_event方法: ...

  2. Linux的七个运行级别原理概述

    所谓运行级别,简单点来说,运行级别就是操作系统当前正在运行的功能级别.级别是从0到6,具有不同的功能.这些级别定义在/ect/inittab文件中.这个文件是init程序寻找的主要文件,最先运行的服务 ...

  3. 【转】获取scrollTop兼容各浏览器的方法,以及body和documentElement是啥?

    1.各浏览器下 scrollTop的差异 IE6/7/8: 对于没有doctype声明的页面里可以使用  document.body.scrollTop 来获取 scrollTop高度 : 对于有do ...

  4. Excel中不常用的一些公式用法

    INDIRECT函数 http://baike.baidu.com/view/3222185.htm 用于使用单元格内容拼凑公式的情况. 1.采用  [工作表名]!单元格名  的形式读取内容: 2.所 ...

  5. ISE联合modelsim功能仿真和综合后仿真1

    1.代码输入 (1).新建一个ISE工程,名字为count4. (2).新建一个verilog文件 (3).选择verilog module 输入file name为count4,单击next默认知道 ...

  6. [na]二层+tcp/udp数据包格式

    标准:6+6+2+3    =17            3 思科:6+6+2+3+3=20           6 ip首部格式 tcp首部格式

  7. css margin塌陷问题

    一.同级块级元素塌陷 html <h2> 同级块级元素塌陷 </h2> <div class="block1"> block1 </div ...

  8. C++ 11 std::function std::bind使用

    cocos new 出新的项目之后,仔细阅读代码,才发现了一句3.0区别于2.0的代码: auto closeItem = MenuItemImage::create( "CloseNorm ...

  9. Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE 解决方法

    最近在做真机测试的时候,经常出现Installation error: INSTAL L_FAILED_INSUFFICIENT_STORAGE这个问题,导致apk没法安装到是手机上,在eclipse ...

  10. ubuntu文件夹默认列表显示

    编辑-->首选项-->视图-->列表视图