---
title: "修改角色 | OceanBase 文档中心"
description: 修改角色 修改角色主要是向角色中添加权限。 通过 SQL 语句修改角色 您可以通过 GRANT 语句向角色中添加权限。 前提条件 为角色授予系统权限、对象权限或角色时，当前用户必须拥有被授予的权限或角色，并且拥有 GRANT OPTION 权限，或者拥有 GRANT ANY OBJECT PRIVILEGE 权限、 …
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.2.3 企业版 LTS

# 修改角色

更新时间：2023-07-19 13:03:07

修改角色主要是向角色中添加权限。

## 通过 SQL 语句修改角色

您可以通过 `GRANT` 语句向角色中添加权限。

### 前提条件

为角色授予系统权限、对象权限或角色时，当前用户必须拥有被授予的权限或角色，并且拥有 `GRANT OPTION` 权限，或者拥有 `GRANT ANY OBJECT PRIVILEGE` 权限、`GRANT ANY PRIVILEGE` 权限或 `GRANT ANY ROLE` 权限，才能授权成功。

查看当前拥有权限的操作请参见 [查看用户权限](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000357878)。如果您没有相应的权限，请联系管理员为您添加，为用户添加权限的相关操作请参见 [修改用户权限](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000357879)。查看当前用户拥有的角色的操作请参见 [查看角色](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000357527)。

### 修改角色的语法

向角色中添加对象权限的语法如下：

```sql
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

```

向角色中添加系统权限的语法如下：

```sql
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`。

```sql
obclient> GRANT SELECT ON user1.tbl1 TO role1;
Query OK, 0 rows affected

```

此外，您也可以向 `PUBLIC` 角色中添加权限，SQL 语句如下：

> **注意**
>
>  
>
> 为了数据库安全，OceanBase 数据库建议您根据自身业务需求来合理授权，请勿随意将该角色赋予用户。

```sql
obclient> GRANT [privilege_list] TO PUBLIC;

```

添加权限后，系统会将该权限添加到租户内的每个用户的权限域中。所有用户都可以立即执行该权限所授权的操作。关于 `PUBLIC` 角色的更多信息，请参见 [角色管理概述](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000357522)。

更多 `GRANT` 语句的说明信息，请参见 [GRANT](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000357388)。

## 通过 OCP 修改角色

您也可以通过 OCP 来完成角色的修改操作，您可以为角色添加系统权限和对象权限。

### 前提条件

修改角色前，请确认当前 OCP 用户具备 **TENANT_MANAGER** 角色的权限，如果没有该角色权限，请联系 OCP 管理员为您添加相应角色的权限，具体操作方法请参见 OCP 对应版本的《用户指南》文档中的 **编辑用户** 。

### 操作步骤

1. 登录 OCP。
 2. 在左导航栏上单击 **租户** ，进入 **租户** 页面。
 3. 在租户列表中，选择 **租户模式** 为 **Oracle** 的租户，进入 **总览** 页面。
 4. 单击左导航栏中的 **用户管理** 。
 5. 单击 **角色列表** 页签，找到待修改的角色，单击角色名，进入角色的详情页面。
 6. 进行如下操作：

      - 为角色添加系统权限

       在 **拥有系统权限** 区域右上角，单击 **修改系统权限** ，选择待授予当前角色的系统权限，单击 **确定** 。
      - 为角色添加对象权限

       在 **可访问对象** 区域右上角，单击 **添加对象** ，根据页面提示，添加可访问的对象及相应权限，单击 **确定** 。

       添加对象时，相关内容的填写说明如下表所示。

       | 参数 | 描述 |
       | --- | --- |
       | 对象类型 | 包括 **表** 、 **视图** 和 **存储过程** 。 |
       | 选择对象 | 支持批量输入多个对象到输入框，请按照 `用户名.对象名` 的格式填写。可以输入多个对象，用英文逗号隔开。    示例：`schemaname.tablename` |
       | 授予权限 | 选择需要授予的权限。 |

       ![Image 30](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/6469242261/p276393.png)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
