GRANT用于为阿里云账号或者RAM子账号授予一定的数据库权限。

语法

GRANT privilege_type [(column_name[, …])]
ON privilege_level 
TO user[, …]

参数

  • privilege_type:权限类型,请参见ACL权限体系
  • column_name[, …]:可选参数,privilege_typeselect时,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表的DESCRIBESELECT权限。
    GRANT describe,select ON customer TO 'ALIYUN$analyticdb_support';
  • 以下示例为分析型数据库MySQL版账号授予CUSTOMER表的customer_idsex列的SELECT权限:
    GRANT select (customer_id, sex) ON customer TO 'ALIYUN$analyticdb_support';
  • 以下示例将数据库ads_databaseSELECTINSERT权限授予阿里云账号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_databaseSELECT权限授予RAM子账号RAM$doc_test:account1
      GRANT SELECT on ads_database.* to 'RAM$doc_test:account1';