getUserAccess

语法

getUserAccess([userIds], [finalAccess=false])

参数

userId 是表示一个或多个用户的字符串标量或向量。

finalAccess 为布尔值,表示是否获取用户及其所属组权限叠加的结果。默认值为 false。

详情

指定 userId 时:

  • finalAccess = false,则返回指定用户所单独被赋予的权限,不包括用户所属组的权限。

  • finalAccess = true,则返回指定用户及其所属组的权限组合后的最终生效权限。

当没有指定 userId 时,返回当前登录用户的权限。

注: 该函数只能由管理员在控制节点、数据节点和计算节点运行。

以下分别介绍返回表的各参数的详情:

参数 详情
userId 用户名
groups 组名
isAdmin 是否是管理员。
MAX_JOB_PRIORITY 该用户对应的作业最高优先级,范围是0-8,可以通过 setMaxJobPriority 指定。
MAX_PARALLELISM 该用户提交的作业最多可以有多少个子任务同时并行执行,可以通过 setMaxJobParallelism 指定。
QUERY_RESULT_MEM_LIMIT 该用户单次查询结果的占用内存上限,浮点类型,单位为 GB。可以通过 grant 指定,revoke 撤销。
TASK_GROUP_MEM_LIMIT 该用户发送的批量子查询占用的内存上限,浮点类型,单位为 GB。可以通过 grant 指定,revoke 撤销。

以下字段对应权限,其值为 “allow" / "none" / "deny" :

权限
ACCESS_READ
ACCESS_INSERT
ACCESS_UPDATE
ACCESS_DELETE
VIEW_EXEC
SCRIPT_EXEC
TEST_EXEC
DBOBJ_CREATE
DBOBJ_DELETE
DB_MANAGE
DB_OWNER
VIEW_OWNER
COMPUTE_GROUP_EXEC

注意

  • 自 3.00.2 版本起,支持获取访问计算节点组的权限。

  • 自 3.00.0.0 版本起,支持获取访问 catalog 的相关权限。

  • 2.00.9 版本开始,新增了表和数据库的插入更新和删除权限(即对写权限进行拓展),因此旧版本的 TABLE_WRITE 字段由 TABLE_INSERT,TABLE_UPDATE,TALBE_DELETE 字段替代。

  • 由于 DB_READ / DB_WRITE / DB_INSERT / DB_UPDATE / DB_DELETE 权限其作用对象为库下的所有表,因此在 getUserAccess 函数的返回字段中,被统一为 TABLE_READ / TABLE_INSERT / TABLE_UPDATE / TALBE_DELETE,可以通过下述权限应用的具体对象表的字段来区分其作用范围。

以下几个字段表示权限应用的具体对象:

对象
TABLE_READ_allowed
TABLE_READ_denied
TABLE_INSERT_allowed
TABLE_INSERT_denied
TABLE_UPDATE_allowed
TABLE_UPDATE_denied
TABLE_DELETE_allowed
TABLE_DELETE_denied
DB_READ_allowed
DB_READ_denied
DB_INSERT_allowed
DB_INSERT_denied
DB_UPDATE_allowed
DB_UPDATE_denied
DB_DELETE_allowed
DB_DELETE_denied
VIEW_EXEC_allowed
VIEW_EXEC_denied
DBOBJ_CREATE_allowed
DBOBJ_CREATE_denied
DBOBJ_DELETE_allowed
DBOBJ_DELETE_denied
DB_OWNER_allowed
DB_MANAGE_allowed
DB_MANAGE_denied
CATALOG_READ_allowed
CATALOG_READ_denied
CATALOG_INSERT_allowed
CATALOG_INSERT_denied
CATALOG_UPDATE_allowed
CATALOG_UPDATE_denied
CATALOG_DELETE_allowed
CATALOG_DELETE_denied
COMPUTE_GROUP_EXEC_allowed
COMPUTE_GROUP_EXEC_denied