---
title: "GRANT - OceanBase 数据库 V4.1.0 | OceanBase 文档中心"
description: GRANT 描述 该语句用于系统管理员授予用户权限，包括对象权限、系统权限和角色。 说明 当授予对象权限时，当前用户必须是对象的所有者，或者拥有被授予的权限（例如， user1 把表 tbl1 的 SELECT 权限授予 user2 ，则 user1 必须拥有表 tbl1 的 SELECT 的权限），并且拥有 GRA…
---
切换语言

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

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

# GRANT

更新时间：2025-02-06 18:11:53

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.1.0/zh-CN/700.reference/400.development-reference/100.sql-syntax/300.common-tenant-of-oracle-mode/900.sql-statement-of-oracle-mode/300.dcl-of-oracle-mode/1700.grant-of-oracle-mode.md)  

## 描述

该语句用于系统管理员授予用户权限，包括对象权限、系统权限和角色。

#### 说明

- 当授予对象权限时，当前用户必须是对象的所有者，或者拥有被授予的权限（例如，`user1` 把表 `tbl1` 的 `SELECT` 权限授予 `user2`，则 `user1` 必须拥有表 `tbl1` 的 `SELECT` 的权限），并且拥有 `GRANT OPTION` 权限，才能授予成功。
 - 当授予系统权限和角色时，当前用户必须拥有被授予的权限或角色，并且拥有 `GRANT OPTION` 权限，才能授予成功。
 - 用户授权的角色，用户只有重新连接 OceanBase 数据库，权限才能生效。
 - 授予用户的直接权限立即生效。

## 语法

```sql
/*授予对象权限*/
GRANT obj_with_col_priv_list
    ON obj_clause TO grantee_list [WITH GRANT OPTION];

obj_with_col_priv_list:
    obj_with_col_priv
    | obj_with_col_priv_list, obj_with_col_priv

obj_with_col_priv:
    obj_privilege [column_list]

obj_privilege:
    ALTER
    | DELETE
    | INDEX
    | INSERT
    | SELECT
    | UPDATE
    | REFERENCES
    | EXECUTE

obj_clause:
    relation_name
    | relation_name '.' relation_name
    | DIRECTORY relation_name

grantee_list：
    grantee_user_list[,grantee_role_list]

grantee_user_list：
    user_name[,user_name...]

grantee_role_list:
    role_name [, role_name ...]

/*授予系统权限*/
GRANT {system_privilege_list | ALL PRIVILEGES}
    TO grantee_list [IDENTIFIED BY password];

system_privilege_list:
    system_privilege [, system_privilege ...]

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

/*授予角色*/
GRANT role_list TO grantee_list [IDENTIFIED BY password][WITH ADMIN OPTION];

role_list:
    role_name [, role_name ...]

```

## 参数解释

| 参数 | 描述 |
| --- | --- |
| obj_with_col_priv | 指定授予的权限类型。具体的权限类型及其说明请参见下方权限类型说明表。 同时把多个权限赋予用户时，权限类型用","隔开。 |
| system_privilege | 指定授予的系统权限类型。 同时把多个权限赋予用户时，权限类型用","隔开。 |
| obj_clause | 指定对象权限涉及的对象。 |
| WITH GRANT OPTION | 指定权限是否允许转授，取消授权时级联。 |
| WITH ADMIN OPTION | 指定权限是否允许转授，取消授权时不级联。 |
| grantee_list | 指定被授予权限或者角色的对象列表。    **说明** 被授予权限或者角色的对象可以是角色，也可以是用户。 |
| user_name | 用户名。 |
| role_name | 角色名。 |

可以授予的权限类型如下表所示。

**权限类型说明表**

| 权限 | 说明 |
| --- | --- |
| ALL PRIVILEGES | 除 `GRANT OPTION` 以外所有权限。 |
| ALTER | `ALTER TABLE` 的权限。 |
| CREATE | `CREATE TABLE` 的权限。 |
| DELETE | `DELETE` 的权限。 |
| DROP | `DROP` 的权限。 |
| GRANT OPTION | `GRANT OPTION` 的权限。 |
| INSERT | `INSERT` 的权限。 |
| UPDATE | `UPDATE` 的权限。 |
| SELECT | `SELECT` 的权限。 |
| INDEX | `CREATE INDEX` 和 `DROP INDEX` 的权限。 |
| REFERENCES | 创建指向表的约束的权限。 |
| EXECUTE | 执行预处理程序的权限。 |
| FLASHBACK | `FLASHBACK` 的权限。 |
| READ | `READ` 的权限。 |
| WRITE | `WRITE` 的权限。 |
| CREATE SESSION | 连接到数据库的权限。 |
| EXEMPT REDACTION POLICY | 绕过任意现有 `REDACTION POLICY` 并查看数据的权限。 |
| SYSDBA | `SYSDBA` 的权限。 |
| SYSOPER | `SYSOPER` 的权限。 |
| SYSBACKUP | `SYSBACKUP` 的权限。 |
| CREATE TABLE | 在指定用户 Schema 内创建表的权限。 |
| CREATE ANY TABLE | 在除 SYS 用户外所有用户 Schema 内创建表的权限。 |
| ALTER ANY TABLE | 在除 SYS 用户外所有用户 Schema 内修改表的权限。 |
| BACKUP ANY TABLE | 在除 SYS 用户外所有用户 Schema 内备份表的权限。 |
| DROP ANY TABLE | 在除 SYS 用户外所有用户 Schema 内删除表的权限。 |
| LOCK ANY TABLE | 在除 SYS 用户外所有用户 Schema 内锁定表的权限。 |
| COMMENT ANY TABLE | 在除 SYS 用户外所有用户 Schema 内评论表的权限。 |
| SELECT ANY TABLE | 在除 SYS 用户外所有用户 Schema 内查看表的权限。 |
| INSERT ANY TABLE | 在除 SYS 用户外所有用户 Schema 内的表插入行的权限。 |
| UPDATE ANY TABLE | 在除 SYS 用户外所有用户 Schema 内的表更新行的权限。 |
| DELETE ANY TABLE | 在除 SYS 用户外所有用户 Schema 内删除表的权限。 |
| FLASHBACK ANY TABLE | 在除 SYS 用户外所有用户 Schema 内 `FLASHBACK` 表的权限。 |
| CREATE ROLE | 创建角色的权限。 |
| DROP ANY ROLE | 删除任意角色的权限。 |
| GRANT ANY ROLE | 授予任意角色的权限。 |
| ALTER ANY ROLE | 修改任意角色的权限。 |
| AUDIT ANY | 在除 SYS 用户外所有用户 Schema 内修改对象的权限。 |
| GRANT ANY PRIVILEGE | 授予任意系统权限的权限。 |
| GRANT ANY OBJECT PRIVILEGE | 授予任意对象权限的权限。 |
| CREATE ANY INDEX | 在除 SYS 用户外所有用户 Schema 内创建索引的权限。 |
| ALTER ANY INDEX | 在除 SYS 用户外所有用户 Schema 内修改索引的权限。 |
| DROP ANY INDEX | 在除 SYS 用户外所有用户 Schema 内删除索引的权限。 |
| CREATE ANY VIEW | 在除 SYS 用户外所有用户 Schema 内创建视图的权限。 |
| DROP ANY VIEW | 在除 SYS 用户外所有用户 Schema 内删除视图的权限。 |
| CREATE VIEW | 在指定用户 Schema 内创建视图的权限。 |
| SELECT ANY DICTIONARY | 在指定用户 Schema 内查询 `DICTIONARY` 的权限。 |
| CREATE PROCEDURE | 在指定用户 Schema 内创建 `PROCEDURE` 的权限。 |
| CREATE ANY PROCEDURE | 在除 SYS 用户外所有用户 Schema 内创建`PROCEDURE` 的权限。 |
| ALTER ANY PROCEDURE | 在除 SYS 用户外所有用户 Schema 内修改`PROCEDURE` 的权限。 |
| DROP ANY PROCEDURE | 在除 SYS 用户外所有用户 Schema 内删除`PROCEDURE` 的权限。 |
| EXECUTE ANY PROCEDURE | 在除 SYS 用户外所有用户 Schema 内执行`PROCEDURE` 的权限。 |
| CREATE SYNONYM | 在指定用户 Schema 内创建 `SYNONYM` 的权限。 |
| CREATE ANY SYNONYM | 在除 SYS 用户外所有用户 Schema 内创建`SYNONYM` 的权限。 |
| DROP ANY SYNONYM | 在除 SYS 用户外所有用户 Schema 内删除`SYNONYM` 的权限。 |
| CREATE PUBLIC SYNONYM | 创建公共 `SYNONYM` 的权限。 |
| DROP PUBLIC SYNONYM | 删除公共 `SYNONYM` 的权限。 |
| CREATE SEQUENCE | 在指定用户 Schema 内创建 `SEQUENCE` 的权限。 |
| CREATE ANY SEQUENCE | 在除 SYS 用户外所有用户 Schema 内创建`SEQUENCE` 的权限。 |
| ALTER ANY SEQUENCE | 在除 SYS 用户外所有用户 Schema 内修改`SEQUENCE` 的权限。 |
| DROP ANY SEQUENCE | 在除 SYS 用户外所有用户 Schema 内删除`SEQUENCE` 的权限。 |
| SELECT ANY SEQUENCE | 在除 SYS 用户外所有用户 Schema 内查询`SEQUENCE` 的权限。 |
| CREATE TRIGGER | 在指定用户 Schema 内创建 `TRIGGER` 的权限。 |
| CREATE ANY TRIGGER | 在除 SYS 用户外所有用户 Schema 内创建 `TRIGGER` 的权限。 |
| ALTER ANY TRIGGER | 在除 SYS 用户外所有用户 Schema 内修改 `TRIGGER` 的权限。 |
| DROP ANY TRIGGER | 在除 SYS 用户外所有用户 Schema 内删除 `TRIGGER` 的权限。 |
| CREATE PROFILE | 创建 `PROFILE` 的权限。 |
| ALTER PROFILE | 修改 `PROFILE` 的权限。 |
| DROP PROFILE | 删除 `PROFILE` 的权限。 |
| CREATE USER | 创建用户的权限。 |
| ALTER USER | 修改用户的权限。 |
| DROP USER | 删除用户的权限。 |
| CREATE TYPE | 在指定用户 Schema 内创建 `TYPE` 的权限。 |
| CREATE ANY TYPE | 在除 SYS 用户外所有用户 Schema 内创建 `TYPE` 的权限。 |
| ALTER ANY TYPE | 在除 SYS 用户外所有用户 Schema 内修改 `TYPE` 的权限。 |
| DROP ANY TYPE | 在除 SYS 用户外所有用户 Schema 内删除 `TYPE` 的权限。 |
| EXECUTE ANY TYPE | 在除 SYS 用户外所有用户 Schema 内执行 `TYPE` 的权限。 |
| UNDER ANY TYPE | 在除 SYS 用户外所有用户 Schema 内 `TYPE` 的基础上创建 `SUBTYPE` 的权限。 |
| PURGE DBA_RECYCLEBIN | 从系统回收站中删除所有对象的权限。 |
| CREATE ANY OUTLINE | 在除 SYS 用户外所有用户 Schema 内创建 `OUTLINE` 的权限。 |
| ALTER ANY OUTLINE | 在除 SYS 用户外所有用户 Schema 内修改 `OUTLINE` 的权限。 |
| DROP ANY OUTLINE | 在除 SYS 用户外所有用户 Schema 内删除 `OUTLINE` 的权限。 |
| SYSKM | `SYSKM` 的权限。 |
| CREATE TABLESPACE | 创建表空间的权限。 |
| ALTER TABLESPACE | 修改表空间的权限。 |
| DROP TABLESPACE | 删除表空间的权限。 |
| ALTER SYSTEM | `ALTER SYSTEM` 的权限。 |
| CREATE DATABASE LINK | 在指定用户 Schema 内创建 `DATABASE LINK` 的权限。 |
| DROP DATABASE LINK | 在指定用户 Schema 内删除 `DATABASE LINK` 的权限。 |
| ALTER SESSION | 修改 `SESSION` 的权限。 |
| ALTER DATABASE | 修改 `DATABASE` 的权限。 |

## 示例

- 授予用户 `user1` 除 `GRANT OPTION` 以外所有当前用户拥有的权限。

  ```sql
  obclient> GRANT ALL PRIVILEGES TO user1;
  Query OK, 0 rows affected

  ```
 - 授予用户 `user2` 会话权限，允许登录 OceanBase 数据库。

  ```sql
  obclient> GRANT CREATE SESSION TO user2;
  Query OK, 0 rows affected

  ```
 - 将角色 `role1` 授予用户 `user2` 。

  ```sql
  obclient> GRANT role1 TO user2;
  Query OK, 0 rows affected

  ```
 - 将角色 `role2` 授予角色 `role1` 。

  ```sql
  obclient> GRANT role2 TO role1;
  Query OK, 0 rows affected

  ```
 - 将表 `user1.tbl1` 的 `SELECT` 对象权限授予角色 `role1`。

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

  ```

 上一篇 下一篇 ![有帮助](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) 咨询热线
