OceanBase GRANT
描述
该语句用于系统管理员授予 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)