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';