博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[oracle] oracle权限传递
阅读量:6982 次
发布时间:2019-06-27

本文共 3864 字,大约阅读时间需要 12 分钟。

 

三个用户:SYS、lisi、wangwu

① 系统权限的传递

 

lisi的初始化系统权限SQL> select * from user_sys_privs;USERNAME                       PRIVILEGE                                ADM------------------------------ ---------------------------------------- ---PUBLIC                         CREATE ANY TABLE                         NOLISI                           CREATE SESSION                           NOLISI                           CREATE TABLE                             NOLISI                           UNLIMITED TABLESPACE                     NOwangwu的初始化系统权限SQL>  select * from user_sys_privs;USERNAME                       PRIVILEGE                                ADM------------------------------ ---------------------------------------- ---PUBLIC                         CREATE ANY TABLE                         NOWANGWU                         CREATE TABLE                             NOWANGWU                         CREATE SESSION                           NOWANGWU                         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                         NOLISI                           CREATE SESSION                           NOLISI                           ALTER ANY TABLE                          NOLISI                           CREATE TABLE                             NOLISI                           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                         NOLISI                           CREATE SESSION                           NOLISI                           ALTER ANY TABLE                          YESLISI                           CREATE TABLE                             NOLISI                           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                         NOWANGWU                         CREATE TABLE                             NOWANGWU                         CREATE SESSION                           NOWANGWU                         ALTER ANY TABLE                          NOWANGWU                         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 400SQL> 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            WANGWUOWNER              SYSTABLE_NAME        USER_OBJECTS        GRANTOR           LISIPRIVILEGE       SELECT GRA                NOHIE                NO

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

 

转载地址:http://itvpl.baihongyu.com/

你可能感兴趣的文章
c#时间转换
查看>>
调度器Quartz的简述与使用总结
查看>>
smokeping 安装
查看>>
Linux下安装oracle数据库步骤
查看>>
yum 不小心删除后安装
查看>>
vim 使用
查看>>
为敏感信息设置安全屏障
查看>>
进程与线程
查看>>
经典SQL
查看>>
维基百科:主流移动设备的屏幕参数
查看>>
使用CGContext画线操作小记
查看>>
mysql fabric安装使用测试
查看>>
java 对 mongoDB 分组统计操作 以及一些常用操作
查看>>
当你扛不住的时候就读读
查看>>
解决安装rrdtool遇到的一个问题
查看>>
linux启动过程
查看>>
QString与LPCWSTR互转
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
xmlUtil 解析 创建
查看>>