描述
该语句用于系统管理员授予 User 某些权限。
说明
当前用户必须拥有被授予的权限(例如,user1 把表 t1 的 SELECT 权限授予 user2,则 user1 必须拥有表 t1 的 SELECT 的权限),并且拥有 GRANT OPTION 权限,才能授予成功。
用户授权后,该用户只有重新连接OceanBase,权限才能生效。
格式
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.rountine_name
user_specification:
user [IDENTIFIED BY [PASSWORD] ‘password’]
with_option:
GRANT OPTION
参数解释
参数 | 描述 |
---|---|
priv_type | 指定授予的权限类型。具体的权限类型及其说明请参见下方权限类型说明表。 同时把多个权限赋予用户时,权限类型用“,”隔开。 |
priv_level | 指定授予权限的层级。权限可以分为以下几个层级:
用“”代替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 赋予所有权限。
OceanBase(admin@TEST)>GRANT ALL PRIVILEGES ON *.* TO obsqluser01 with grant option;
Query OK, 0 rows affected (0.03 sec)