本节主要介绍 Oracle 模式中角色的管理命令。在 Oracle 模式中,角色是一组系统权限、对象权限的组合,角色中也可以包含其他角色。
一个用户可以被授予多个角色,同时还可以设置这些角色中,哪些生效,哪些失效。用户将拥有生效角色的所有权限,用户不拥有失效的角色中包含的权限。
OceanBase 数据库支持对 Oracle 模式中的角色进行以下操作:
说明
授予系统权限或角色时,当前用户必须拥有被授予的权限或角色,并且拥有 GRANT OPTION
权限,才能操作成功。
角色之间相互授权
角色相互授权的语法如下:
GRANT <role_name_list> TO role_name WITH ADMIN OPTION;
向
PUBLIC
角色中添加权限或将PUBLIC
角色添加给用户支持整个租户内的
PUBLIC
角色,可以向PUBLIC
角色中添加权限,也可以将PUBLIC
角色添加给某一个用户。示例如下:
obclient> GRANT [privilege_list] TO PUBLIC;
obclient> GRANT PUBLIC TO user_name;
指定用户在登录时生效或失效的角色
支持通过
DEFAULT ROLE
子句,指定一个或者多个 Role 名称,生效一个或多个角色;也可以通过ALL
,生效所有被授予的角色。同时,还可以通过EXCEPT
,指定失效的角色;通过NONE
,失效所有被授予的角色。示例如下:
obclient> ALTER USER user_name DEFAULT ROLE role_name;
指定当前会话中,用户生效或失效的角色
支持在当前会话中通过
SET ROLE
语句设置用户被授予的角色哪些生效或失效。说明
设置后,仅影响当前 Session,不影响之后的 Session。