revoke
语法
revoke(id, accessType, [objs])
参数
userId | groupId 是表示用户名或组名的字符串。
accessType 是权限类型。
accessType 和 objs 的取值请参照 用户权限管理 权限类型表。
详情
revoke
函数执行以下操作:
(1)撤销某个用户或某个组的之前被赋予或禁止的权限。
(2)撤销 grant
给某个用户的内存约束,包含:查询返回结果的内存上限(指定
accessType = QUERY_RESULT_MEM_LIMIT)和发送的批量子查询占用的内存上限(指定 accessType
= TASK_GROUP_MEM_LIMIT)。撤销后,将恢复为系统的默认值。
管理员可以通过该命令撤销用户所有权限(accessType),但普通用户在拥有相关的 OWNER 权限后,只能通过该命令撤销以下权限:TABLE_READ, TABLE_WRITE, TABLE_INSERT, TABLE_UPDATE, TABLE_DELETE, DB_READ, DB_WRITE, DB_INSERT, DB_UPDATE, DB_DELETE, DBOBJ_DELETE, DBOBJ_CREATE 和 VIEW_EXEC。
例子
撤销组 "production" 的所有成员读取所有数据库表的权限:
revoke(`production, TABLE_READ, "*")
撤销组 "research" 的所有成员读写表 dfs://db1/t1 的权限:
revoke(`research, TABLE_WRITE, "dfs://db1/t1")
撤销组 "research" 的所有成员在数据库 dfs://db1 和 dfs://db2 创建表的权限:
revoke("research", DBOBJ_CREATE, ["dfs://db1","dfs://db2"])
撤销用户 "AlexSmith" 创建和删除数据库的权限:
revoke("AlexSmith", DB_MANAGE)
撤销用户 "AlexSmith" 执行脚本的权限:
revoke("AlexSmith", SCRIPT_EXEC)
撤销用户 "AlexSmith" 测试脚本的权限:
revoke("AlexSmith", TEST_EXEC)