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

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 系统权限,或者您必须已创建角色。”