首批通过分布式安全可靠测评,为关键业务系统打造
权限转授
更新时间:2026-04-10 11:58:35
权限转授解决了授权者集中的问题。通过在授权时指定 with admin/grant option,可以同时授予用户将对应权限转授给其他用户的权限。回收对象权限时,要同时回收该用户转授给其他用户的对应权限,即 A 授予 B 权限,B 授予 C 权限,如果 A 收回 B 的权限,C 的权限也会被回收。回收系统权限时,不会级联回收转授的权限。
权限转授示例
使用 sys 用户登录集群的 Oracle 租户,并创建 A,B,C 三个用户并分别授予
CREATE SESSION系统权限,单独授予 A 用户GRANT ANY PRIVILEGE权限。obclient > CREATE USER A IDENTIFIED BY ******; obclient > CREATE USER B IDENTIFIED BY ******; obclient > CREATE USER C IDENTIFIED BY ******; obclient > GRANT CREATE SESSION TO A; obclient > GRANT CREATE SESSION TO B; obclient > GRANT CREATE SESSION TO C; obclient > GRANT GRANT ANY PRIVILEGE TO A;在 sys 用户下创建表 test。
obclient > CREATE TABLE test (id number(10),name varchar2(10)); Query OK, 0 rows affected (0.050 sec)授予 A 用户查询 sys 用户下表 test 的权限。
obclient > GRANT SELECT ON sys.test TO A;登录 A 用户,授予 B 用户查询 test 表权限,并带上
with grant option可以让 B 用户在进行授权。obclient > GRANT SELECT ON sys.test TO B with grant option;切换到 B 用户,发现可以查询 test 表。
obclient > SELECT * FROM sys.test登录 B 用户,把查询 test 表的权限授予 C 用户。
obclient > GRANT SELECT ON sys.test TO C ;如果在给 B 用户授权时没有带
with grant option参数,则使用 B 用户对 C 用户转授相同权限时会提示如下报错:obclient > GRANT SELECT on sys.test TO C ; ORA-01031: insufficient privileges切换到 C 用户,发现可以查询 test 表,权限转授成功。
obclient > SELECT * FROM sys.test;