GRANT用于为用户授权。

GRANT
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...
    ON priv_level
    TO user [auth_option]
    [WITH {GRANT OPTION}]     

参数

  • priv_type:权限类型,详情请参见权限模型
  • column_list:可选参数,当priv_typeSELECT时,可以填写表中的列名,针对具体列授予SELECT授权。
  • priv_level:被授权对象层级。
    • *.*:整个集群级别的权限。
    • db_name.*:数据库级别的权限。
    • db_name.table_name或者table_name:表级别的权限。

注意事项

通过GRANT授权用户时,您需要拥有GRANT OPTION权限。

示例

  • 为账号account2授予集群级别的all权限。
    GRANT all ON *.* TO 'account2';                
  • 为账号account3授予数据库级别的all权限。
    GRANT all ON adb_demo.* TO 'account3';                 
  • 可以通过GRANT创建并授权账号。

    例如,创建全局DML账号。

    GRANT insert,select,update,delete on *.* to 'test'@'%' identified by 'Testpassword1';                 

    创建数据库级别DML账号。

    GRANT insert,select,update,delete on adb_demo.* to 'test123' identified by 'Testpassword123';                 
  • 创建账号并授予列级别的SELECT权限。
    GRANT select (customer_id, sex) ON customer TO 'test321' identified by 'Testpassword321';