139 lines
7.0 KiB
Markdown
139 lines
7.0 KiB
Markdown
GRANT
|
|
==========================
|
|
|
|
|
|
|
|
描述
|
|
-----------
|
|
|
|
该语句用于系统管理员授予 User 某些权限。
|
|
**说明**
|
|
|
|
|
|
|
|
* 当前用户必须拥有被授予的权限(例如,user1 把表 t1 的 SELECT 权限授予 user2,则 user1 必须拥有表 t1 的 SELECT 的权限),并且拥有 GRANT OPTION 权限,才能授予成功。
|
|
|
|
|
|
|
|
* 用户授权后,该用户只有重新连接OceanBase,权限才能生效。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
格式
|
|
-----------
|
|
|
|
```javascript
|
|
GRANT priv_type
|
|
ON priv_level
|
|
TO user_specification [, user_specification]...
|
|
[WITH with_option ...]
|
|
|
|
privilege_type:
|
|
ALTER
|
|
| CREATE
|
|
| CREATE USER
|
|
| CREATE VIEW
|
|
| DELETE
|
|
| DROP
|
|
| GRANT OPTION
|
|
| INDEX
|
|
| INSERT
|
|
| PROCESS
|
|
| SELECT
|
|
| SHOW DATABASES
|
|
| SHOW VIEW
|
|
| SUPER
|
|
| UPDATE
|
|
| USAGE
|
|
| CREATE SYNONYM
|
|
|
|
priv_level:
|
|
*
|
|
| *.*
|
|
| db_name.*
|
|
| db_name.tbl_name
|
|
| tbl_name
|
|
| db_name.routine_name
|
|
|
|
user_specification:
|
|
user [IDENTIFIED BY [PASSWORD] 'password']
|
|
|
|
with_option:
|
|
GRANT OPTION
|
|
```
|
|
|
|
|
|
|
|
参数解释
|
|
-------------
|
|
|
|
|
|
|
|
| **参数** | **描述** |
|
|
|----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
| priv_type | 指定授予的权限类型。具体的权限类型及其说明请参见下方权限类型说明表。 同时把多个权限赋予用户时,权限类型用","隔开。 |
|
|
| priv_level | 指定授予权限的层级。权限可以分为以下几个层级: * 全局层级:适用于所有的数据库。使用 GRANT ALL ON \*.\*授予全局权限。 * 数据库层级:适用于一个给定数据库中的所有目标。使用 GRANT ALL ON db_name.\* 授予数据库权限。 * 表层级:表权限适用于一个给定表中的所有列。使用 GRANT ALL ON db_name.tbl_name 授予表权限。 用"\*"代替table_name,表示赋予全局权限,即对数据库中的所有表赋权。 |
|
|
| user_specification | 给特定用户授予权限。如果用户不存在,可以直接创建用户。 sql_mode='no_auto_create_user',同时没有identified by 指定密码时,不可以直接创建用户。 同时给多个用户授权时,用户名用","隔开。 |
|
|
| user IDENTIFIED BY 'password' | 此处密码为明文。 |
|
|
| user IDENTIFIED BY PASSWORD 'password' | 此处密码为密文。 |
|
|
| with_option | 指定权限是否允许转授 |
|
|
|
|
|
|
|
|
可以授予的权限类型如下表所示。
|
|
|
|
**权限类型说明表**
|
|
|
|
|
|
| **权限** | **说明** |
|
|
|-------------------|-----------------------------------------------------------------|
|
|
| ALL PRIVILEGES | 除GRANT OPTION以外所有权限。 |
|
|
| ALTER | ALTER TABLE的权限。 |
|
|
| CREATE | CREATE TABLE的权限。 |
|
|
| CREATE USER | CREATE USER,DROP USER,RENAME USER和REVOKE ALL PRIVILEGES的权限。 |
|
|
| CREATE TABLEGROUP | 全局CREATE TABLEGROUP的权限。 |
|
|
| DELETE | DELETE的权限。 |
|
|
| DROP | DROP的权限。 |
|
|
| GRANT OPTION | GRANT OPTION的权限。 |
|
|
| INSERT | INSERT的权限。 |
|
|
| SELECT | SELECT的权限。 |
|
|
| UPDATE | UPDATE的权限。 |
|
|
| SUPER | SET GLOBAL修改全局系统参数的权限。 |
|
|
| SHOW DATABASES | 全局 SHOW DATABASES的权限。 |
|
|
| INDEX | CREATE INDEX, DROP INDEX的权限 |
|
|
| CREATE VIEW | 创建、删除视图的权限。 |
|
|
| SHOW VIEW | SHOW CREATE VIEW权限。 |
|
|
| CREATE SYNONYM | 创建同义词的权限。 |
|
|
|
|
|
|
|
|
|
|
**说明**
|
|
|
|
|
|
|
|
目前没有 change effective tenant 的权限控制,故 sys 租户下的用户都可以进行授权。
|
|
|
|
示例
|
|
-----------
|
|
|
|
* 执行以下命令给用户 obsqluser01 赋予所有权限。
|
|
|
|
|
|
|
|
|
|
```javascript
|
|
OceanBase(admin@TEST)>GRANT ALL PRIVILEGES ON *.* TO obsqluser01 with grant option;
|
|
Query OK, 0 rows affected (0.03 sec)
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|