基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
修改角色
更新时间:2023-07-19 13:03:07
修改角色主要是向角色中添加权限。
通过 SQL 语句修改角色
您可以通过 GRANT 语句向角色中添加权限。
前提条件
为角色授予系统权限、对象权限或角色时,当前用户必须拥有被授予的权限或角色,并且拥有 GRANT OPTION 权限,或者拥有 GRANT ANY OBJECT PRIVILEGE 权限、GRANT ANY PRIVILEGE 权限或 GRANT ANY ROLE 权限,才能授权成功。
查看当前拥有权限的操作请参见 查看用户权限。如果您没有相应的权限,请联系管理员为您添加,为用户添加权限的相关操作请参见 修改用户权限。查看当前用户拥有的角色的操作请参见 查看角色。
修改角色的语法
向角色中添加对象权限的语法如下:
GRANT obj_privilege ON obj_clause TO role_name [WITH GRANT OPTION];
obj_privilege:
ALTER
| DELETE
| INSERT
| SELECT
| UPDATE
| EXECUTE
obj_clause:
relation_name
| relation_name '.' relation_name
| DIRECTORY relation_name
向角色中添加系统权限的语法如下:
GRANT {system_privilege_list | ALL PRIVILEGES}
TO role_name [WITH {GRANT | ADMID} OPTION];
system_privilege:
CREATE SESSION
| EXEMPT REDACTION POLICY
| SYSDBA
| SYSOPER
| SYSBACKUP
| CREATE TABLE
| CREATE ANY TABLE
| ALTER ANY TABLE
| BACKUP ANY TABLE
| DROP ANY TABLE
| LOCK ANY TABLE
| COMMENT ANY TABLE
| SELECT ANY TABLE
| INSERT ANY TABLE
| UPDATE ANY TABLE
| DELETE ANY TABLE
| FLASHBACK ANY TABLE
| CREATE ROLE
| DROP ANY ROLE
| GRANT ANY ROLE
| ALTER ANY ROLE
| AUDIT ANY
| GRANT ANY PRIVILEGE
| GRANT ANY OBJECT PRIVILEGE
| CREATE ANY INDEX
| ALTER ANY INDEX
| DROP ANY INDEX
| CREATE ANY VIEW
| DROP ANY VIEW
| CREATE VIEW
| SELECT ANY DICTIONARY
| CREATE PROCEDURE
| CREATE ANY PROCEDURE
| ALTER ANY PROCEDURE
| DROP ANY PROCEDURE
| EXECUTE ANY PROCEDURE
| CREATE SYNONYM
| CREATE ANY SYNONYM
| DROP ANY SYNONYM
| CREATE PUBLIC SYNONYM
| DROP PUBLIC SYNONYM
| CREATE SEQUENCE
| CREATE ANY SEQUENCE
| ALTER ANY SEQUENCE
| DROP ANY SEQUENCE
| SELECT ANY SEQUENCE
| CREATE TRIGGER
| CREATE ANY TRIGGER
| ALTER ANY TRIGGER
| DROP ANY TRIGGER
| CREATE PROFILE
| ALTER PROFILE
| DROP PROFILE
| CREATE USER
| ALTER USER
| DROP USER
| CREATE TYPE
| CREATE ANY TYPE
| ALTER ANY TYPE
| DROP ANY TYPE
| EXECUTE ANY TYPE
| UNDER ANY TYPE
| PURGE DBA_RECYCLEBIN
| CREATE ANY OUTLINE
| ALTER ANY OUTLINE
| DROP ANY OUTLINE
| SYSKM
| CREATE TABLESPACE
| ALTER TABLESPACE
| DROP TABLESPACE
| SHOW PROCESS
| ALTER SYSTEM
| CREATE DATABASE LINK
| CREATE PUBLIC DATABASE LINK
| DROP DATABASE LINK
| ALTER SESSION
| ALTER DATABASE
语句使用说明:
obj_privilege:指定授予的对象权限类型。同时将多个权限授予用户时,权限类型之间用英文逗号(,)分隔。obj_clause:指定授予的对象权限的涉及的对象。system_privilege:指定授予的系统权限类型。同时将多个权限授予用户时,权限类型之间用英文逗号(,)分隔。WITH GRANT OPTION:表示指定当前授予的权限是否允许转授,且取消授权时会级联。
操作示例
将表 user1.tbl1 的 SELECT 对象权限授予角色 role1。
obclient> GRANT SELECT ON user1.tbl1 TO role1;
Query OK, 0 rows affected
此外,您也可以向 PUBLIC 角色中添加权限,SQL 语句如下:
注意
为了数据库安全,OceanBase 数据库建议您根据自身业务需求来合理授权,请勿随意将该角色赋予用户。
obclient> GRANT [privilege_list] TO PUBLIC;
添加权限后,系统会将该权限添加到租户内的每个用户的权限域中。所有用户都可以立即执行该权限所授权的操作。关于 PUBLIC 角色的更多信息,请参见 角色管理概述。
更多 GRANT 语句的说明信息,请参见 GRANT。
通过 OCP 修改角色
您也可以通过 OCP 来完成角色的修改操作,您可以为角色添加系统权限和对象权限。
前提条件
修改角色前,请确认当前 OCP 用户具备 TENANT_MANAGER 角色的权限,如果没有该角色权限,请联系 OCP 管理员为您添加相应角色的权限,具体操作方法请参见 OCP 对应版本的《用户指南》文档中的 编辑用户 。
操作步骤
登录 OCP。
在左导航栏上单击 租户 ,进入 租户 页面。
在租户列表中,选择 租户模式 为 Oracle 的租户,进入 总览 页面。
单击左导航栏中的 用户管理 。
单击 角色列表 页签,找到待修改的角色,单击角色名,进入角色的详情页面。
进行如下操作:
为角色添加系统权限
在 拥有系统权限 区域右上角,单击 修改系统权限 ,选择待授予当前角色的系统权限,单击 确定 。
为角色添加对象权限
在 可访问对象 区域右上角,单击 添加对象 ,根据页面提示,添加可访问的对象及相应权限,单击 确定 。
添加对象时,相关内容的填写说明如下表所示。
参数 描述 对象类型 包括 表 、 视图 和 存储过程 。 选择对象 支持批量输入多个对象到输入框,请按照 用户名.对象名的格式填写。可以输入多个对象,用英文逗号隔开。
示例:schemaname.tablename授予权限 选择需要授予的权限。 