GRANT用于为数据库账号授权。
语法
GRANT privilege_type
ON privilege_level
TO user[, …]
参数
privilege_type:权限类型,取值为SELECT、 SHOW、 ALTER、DROP、CREATE、INSERT、UPDATE、DELETE、GRANT OPTION、 ALL、ALL PRIVILEGES、USAGE 。
可以用’,’将多个权限连接在一起,例如SELECT,DELETE,UPDATE,INSERT,…
有ALL或ALL PRIVILEGES表示授予所有权限,如果此时还有其他Privilege,则其他Privilege将无效。但GRANT OPTION不包含在ALL中,必须显式授权。
GRANT OPTION为DCL授权(GRANT和REVOKE相关)。可以在Privilege中指定GRANT OPTION,也可以通过语句片段WITH GRANT OPTION来做GRANT授权。
SELECT为QUERY授权
SHOW为SHOW、USE命令授权(与MySQL的逻辑差异比较大)
ALTER为ALTER或其他变更型的DDL授权
CREATE为CREATE型的DDL授权
DROP为DROP型的DDL授权
INSERT为INSERT型的DML授权
UPDATE为UPDATE型的DML授权
DELETE为DELETE型的DML授权
USAGE表示为空
privilege_level:被授权对象层级,如果要查询Schema级别权限,则写成schema_name.*;如果查询表级别权限,则写成table_name。
*表示当前连接使用了某个Schema,然后针对该Schema/DataBase授权,Schema/DataBase级别权限。
*.* 表示所有库的所有表授权,Global级别权限。
xxDb.*表示针对Schema/DataBase这个库做授权,库级别权限。
xxDb.yyTable 表示针对Schema/DataBase的某个表做授权,表级别权限。
yyTable表示当前连接使用了某个库xxDB,针对xxDB库的xxTable做授权,表级别权限。
暂时不支持字段级别的授权。
user:被授权人
只能由DLA的Root账号给其他非Root账号授权。
暂时不支持非Root账号给其他账号授权。
不支持跨云账号授权和撤销权限。
只有相同云账号下的Root账号才能通过SHOW GRANTS,查看其他账号权限。
示例
为dla_test账号授予ots_account_test数据库级别的all权限:
grant all on ots_account_test.* to dla_test;
为dla_test账号授予tpch Schema中finished_orders_v1视图的SELECT、SHOW、DROP, ALTER权限。
grant select,show,drop,alter on tpch.finished_orders_v1 to dla_test;
在文档使用中是否遇到以下问题
更多建议
匿名提交