revoke

语法

revoke(id, accessType, [objs])

参数

userId | groupId 是表示用户名或组名的字符串。

accessType 是权限类型。

objs 标量或向量,表示权限类型的应用对象。

accessTypeobjs 的取值请参照 用户权限管理 权限类型表。

详情

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)