首批通过分布式安全可靠测评,为关键业务系统打造
间接权限
更新时间:2026-04-10 11:58:35
用户的权限,包含直接授予的系统权限或者对象权限,也包含授予角色后,通过角色包获得的权限。大部分操作需要的权限,不论是直接授予的还是通过角色间接拥有的权限,都可以满足条件。
对于下列场景,需要有直接权限才可以:
- 创建视图时,访问视图中的对象所需的权限。
- 执行定义者权限的有名 PL 块中的语句所需的权限。
通过角色间接获得权限
前提条件
为角色授予系统权限、对象权限或角色时,当前用户必须拥有被授予的权限或角色,并且拥有 GRANT OPTION 权限,或者拥有 GRANT ANY OBJECT PRIVILEGE 权限、GRANT ANY PRIVILEGE 权限或 GRANT ANY ROLE 权限,才能授权成功。
查看当前拥有权限的操作请参见 查看用户权限。如果您没有相应的权限,请联系管理员为您添加,为用户添加权限的相关操作请参见 修改用户权限。查看当前用户拥有的角色的操作请参见 查看角色。
操作示例
将表 test1.tbl1 的 SELECT 对象权限授予角色 role1。
obclient> GRANT SELECT ON test1.tbl1 TO role1;
Query OK, 0 rows affected
此外,您也可以向 PUBLIC 角色中添加权限,SQL 语句如下:
注意
为了数据库安全,OceanBase 数据库建议您根据自身业务需求来合理授权,请勿随意将该角色赋予用户。
obclient> GRANT [privilege_list] TO PUBLIC;
添加权限后,系统会将该权限添加到租户内的每个用户的权限域中。所有用户都可以立即执行该权限所授权的操作。关于 PUBLIC 角色的更多信息,参见 角色管理概述。
更多 GRANT 语句的说明信息,参见 GRANT。