授予仅向用户授予某些角色的权限

时间:2018-11-09 13:44:06

标签: sql oracle11g grant

我具有角色A和角色B,我想授予某些用户权限以将角色A授予其他用户,但不授予角色B。 实际上,我正在使用GRANT GRANT ANY ROLE TO user,但是它允许用户赋予他想要的任何角色。

所以基本上我需要像GRANT GRANT A TO username这样的东西。

编辑:用户必须授予其他用户的角色,而不是他所属的角色

1 个答案:

答案 0 :(得分:0)

如果您要授予该权限的那些用户可以同时属于这两个角色,则在授予您希望允许被授予者能够授予该角色的角色时,可以使用WITH GRANT OPTION

GRANT A TO user WITH GRANT OPTION;
GRANT B TO user;

因此,user将能够授予角色A但不会授予角色B(而他将同时属于这两个角色)。

编辑:您现在指定的方案(允许用户将角色授予他人但不属于该角色)在Oracle中是不可能的,除非该用户是创建角色的用户。根据Oracle Docs(https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm#SQLRF01603的说法,“要授予角色,您必须已被授予ADMIN OPTION的角色或已被授予GRANT ANY ROLE的系统特权,或者您必须已经创建了角色。”