GRANT用于为阿里云账号或者RAM子账号授予一定的数据库权限。
语法
GRANT privilege_type [(column_name[, …])]
ON privilege_level
TO user[, …]
参数
privilege_type
:权限类型,请参见ACL权限体系。column_name[, …]
:可选参数,privilege_type
为select
时,column_name
为具体的列名,即针对具体列授予SELECT
权限。privilege_level
:被授权对象层级。database_name.*
:数据库级别的权限。table_name
:表级别的权限。
user
:阿里云账号或者RAM子账号。- 阿里云账号的账号格式为
ALIYUN$account_name
,其中ALIYUN$
为阿里云账号前缀,标识该账号为阿里云账号;account_name
为阿里云账号的账号名,例如ALIYUN$doc_test
。 - RAM子账号的账号格式为
RAM$account_name:subaccount_name
,其中RAM$
为RAM子账号前缀,标识该账号为RAM子账号;account_name
为阿里云账号名;subaccount_name
为RAM子账号的账号名。例如RAM$doc_test:account1
。
- 阿里云账号的账号格式为
示例
- 以下示例为分析型数据库MySQL版账号授予CUSTOMER表的all权限。
GRANT all ON TO 'ALIYUN$analyticdb_support';
- 以下示例为分析型数据库MySQL版账号授予CUSTOMER表的
DESCRIBE
和SELECT
权限。GRANT describe,select ON customer TO 'ALIYUN$analyticdb_support';
- 以下示例为分析型数据库MySQL版账号授予CUSTOMER表的
customer_id
和sex
列的SELECT
权限:GRANT select (customer_id, sex) ON customer TO 'ALIYUN$analyticdb_support';
- 以下示例将数据库
ads_database
的SELECT
、INSERT
权限授予阿里云账号ALIYUN$doc_test
。GRANT SELECT on ads_database.* to 'ALIYUN$doc_test'; GRANT INSERT on ads_database.* to 'ALIYUN$doc_test';
- 以下示例中阿里云账号
ALIYUN$doc_test
将数据库ads_database
的SELECT
权限授予RAM子账号RAM$doc_test:account1
。GRANT SELECT on ads_database.* to 'RAM$doc_test:account1';