首批通过分布式安全可靠测评,为关键业务系统打造
修改角色
更新时间:2026-04-10 11:58:01
修改角色包括向角色中添加权限或从角色中撤销权限。
向角色中添加权限
前提条件
为角色授予系统权限或对象权限时,当前用户必须拥有被授予的权限,并且拥有 GRANT OPTION 权限,或者拥有 GRANT ANY OBJECT PRIVILEGE 权限、GRANT ANY PRIVILEGE 权限,才能授权成功。
查看当前拥有权限的操作请参见 查看用户权限。如果您没有相应的权限,请联系管理员为您添加,为用户添加权限的相关操作请参见 直接授予权限。查看当前用户拥有的角色的操作请参见 查看角色。
语句及示例
向角色中添加对象权限的语句如下:
GRANT obj_privilege ON obj_clause TO role_name;
obj_clause:
relation_name
| relation_name '.' relation_name
向角色中添加系统权限的语句如下:
GRANT {system_privilege | ALL PRIVILEGES}
TO role_name [WITH ADMIN OPTION];
语句使用说明:
obj_privilege:指定授予的对象权限类型。同时将多个权限授予用户时,权限类型之间用英文逗号(,)分隔。有关 Oracle 模式支持的所有对象权限类型,请参见 Oracle 模式下的权限分类。
obj_clause:指定授予的对象权限的涉及的对象。system_privilege:指定授予的系统权限类型。同时将多个权限授予用户时,权限类型之间用英文逗号(,)分隔。有关 Oracle 模式支持的所有系统权限类型,请参见 Oracle 模式下的权限分类。
WITH ADMIN OPTION:表示指定当前授予的权限允许转授,且取消授权时不会级联。
示例如下:
将表 test1.tbl1 的 SELECT 对象权限授予角色 role1。
obclient> GRANT SELECT ON test1.tbl1 TO role1;
此外,您也可以向 PUBLIC 角色中添加权限,SQL 语句如下:
注意
为了数据库安全,OceanBase 数据库建议您根据自身业务需求来合理授权,请勿随意将该角色赋予用户。
GRANT [privilege_list] TO PUBLIC;
添加权限后,系统会将该权限添加到租户内的每个用户的权限域中。所有用户都可以立即执行该权限所授权的操作。关于 PUBLIC 角色的更多信息,请参见 角色管理概述。
更多 GRANT 语句的说明信息,请参见 GRANT。
从角色中撤销权限
前提条件
撤销角色的系统权限、对象权限或角色时,当前用户必须拥有被撤销的权限或角色,并且拥有 GRANT OPTION 权限,或者拥有 GRANT ANY OBJECT PRIVILEGE 权限、GRANT ANY PRIVILEGE 权限或 GRANT ANY ROLE 权限,才能撤销成功。
查看当前拥有权限的操作请参见 查看用户权限。如果您没有相应的权限,请联系管理员为您添加,为用户添加权限的相关操作请参见 直接授予权限。查看当前用户拥有的角色的操作请参见 查看角色。
注意事项
注意
撤销系统默认角色 STANDBY_REPLICATION 中的权限可能会影响基于网络的物理备库的日志同步,请谨慎操作。
语句及示例
从角色中撤销对象权限的语句如下:
REVOKE obj_privilege ON obj_clause FROM role_name;
obj_clause:
relation_name
| relation_name '.' relation_name
从角色中撤销系统权限的语句如下:
REVOKE {system_privilege | ALL PRIVILEGES}
FROM role_name;
语句使用说明:
obj_privilege:指定撤销的对象权限类型。同时撤销多个权限时,权限类型之间用英文逗号(,)分隔。obj_clause:指定撤销的对象权限的涉及的对象。system_privilege:指定撤销的系统权限类型。同时撤销多个权限时,权限类型之间用英文逗号(,)分隔。
从角色 role1 中撤销系统权限 CREATE SESSION 的示例如下:
obclient> REVOKE CREATE SESSION FROM role1;