授予权限以仅向用户授予某些角色
Grant permission to grant only certain roles to a user
我有角色A和角色B,我想授予某些用户将角色A授予另一个用户的权限,但不能授予角色B。
实际上我正在使用 GRANT GRANT ANY ROLE TO user
,但它允许用户赋予他想要的任何角色。
所以基本上我需要像 GRANT GRANT A TO username
.
这样的东西
编辑:用户必须授予另一个用户的角色,这不是他所属的角色
如果您尝试授予该权限的那些用户可以同时属于这两个角色,您可以在授予您希望允许被授予者能够授予的角色时使用WITH GRANT OPTION
:
GRANT A TO user WITH GRANT OPTION;
GRANT B TO user;
因此,user
将能够授予角色 A 但不能授予角色 B(而他属于两者)。
编辑:您现在指定的方案(允许用户将角色授予不属于该角色的其他人)在 Oracle 中是不可能的,除非该用户是创建该角色的用户。根据 Oracle 文档 (https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm#SQLRF01603)“要授予角色,您必须已被授予具有 ADMIN OPTION
的角色或已被授予 GRANT ANY ROLE
系统权限,或者您必须已创建角色。”
我有角色A和角色B,我想授予某些用户将角色A授予另一个用户的权限,但不能授予角色B。
实际上我正在使用 GRANT GRANT ANY ROLE TO user
,但它允许用户赋予他想要的任何角色。
所以基本上我需要像 GRANT GRANT A TO username
.
编辑:用户必须授予另一个用户的角色,这不是他所属的角色
如果您尝试授予该权限的那些用户可以同时属于这两个角色,您可以在授予您希望允许被授予者能够授予的角色时使用WITH GRANT OPTION
:
GRANT A TO user WITH GRANT OPTION;
GRANT B TO user;
因此,user
将能够授予角色 A 但不能授予角色 B(而他属于两者)。
编辑:您现在指定的方案(允许用户将角色授予不属于该角色的其他人)在 Oracle 中是不可能的,除非该用户是创建该角色的用户。根据 Oracle 文档 (https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm#SQLRF01603)“要授予角色,您必须已被授予具有 ADMIN OPTION
的角色或已被授予 GRANT ANY ROLE
系统权限,或者您必须已创建角色。”