deny

语法

deny(id, accessType, [objs])

参数

id 是表示用户名或组名的字符串。

accessType 是权限类型。主要有以下8种权限:

  1. TABLE_READ:读取指定数据表

  2. TABLE_WRITE:写入指定数据表

  3. DBOBJ_CREATE:在某个数据库中创建数据表

  4. DBOBJ_DELETE:删除某个数据库中的数据表

  5. VIEW_EXEC:执行某个视图

  6. DB_MANAGE:创建以及删除数据库。可删除任何人所建数据库,包括具有DB_OWNER权限之用户所建数据库。

  7. DB_OWNER:创建数据库并管理其创建的数据库,包括删除数据库、创建或删除数据表、增加或删除分区、可赋予、禁止或取消其他用户对自己创建的数据库的以下权限:TABLE_READ, TABLE_WRITE, DBOBJ_CREATE, DBOBJ_DELETE。

  8. SCRIPT_EXEC:执行脚本

  9. TEST_EXEC:执行测试脚本

objs 是表示权限类型的应用对象。若权限类型为TABLE_READ, TABLE_WRITE, DBOBJ_CREATE, DBOBJ_DELETE或VIEW_EXEC, 它是一个必需参数。若权限类型为DB_MANAGE, DB_OWNER, SCRIPT_EXEC和TEST_EXEC, 它可以省略。

详情

拒绝某个用户或某个群的权限。该命令只能由管理员在控制器节点上执行。

例子

组“production”中的所有成员不能访问数据库 dfs://db1 中的所有表:

$ deny(`production, TABLE_READ, "dfs://db1")

组“research”中的所有成员都不能向表 dfs://db1/t1 中写入数据:

$ deny(`research, TABLE_WRITE, "dfs://db1/t1")

组“research”中的所有成员都不能在数据库 dfs://db1dfs://db2 中创建表:

$ deny("research", DBOBJ_CREATE, ["dfs://db1","dfs://db2"])

用户“AlexSmith”不能创建或删除数据库:

$ deny("AlexSmith", DB_MANAGE)

用户“AlexSmith”不能执行脚本:

$ deny("AlexSmith", SCRIPT_EXEC)

用户“AlexSmith”不能测试脚本:

$ deny("AlexSmith", TEST_EXEC)