我具有角色A和角色B,我想授予某些用户权限以将角色A授予其他用户,但不授予角色B。
实际上,我正在使用GRANT GRANT ANY ROLE TO user
,但是它允许用户赋予他想要的任何角色。
所以基本上我需要像GRANT GRANT A TO username
这样的东西。
编辑:用户必须授予其他用户的角色,而不是他所属的角色
答案 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
的系统特权,或者您必须已经创建了角色。”