您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

GRANT SET USER 特权语句

为某一用户授予模仿其他用户和管理 SET USER 系统特权的能力。

快速链接:

转至参数

转至示例

转至用法

转至标准

转至权限

语法

GRANT SET USER (  

| ANY

| ANY WITH ROLES )

TO [, …]

[ WITH ADMIN [ ONLY ] OPTION | WITH NO ADMIN OPTION ]

参数

  • target_users_list 必须包含具有登录口令的现有用户,并且是被授予者用户不可再模仿的潜在目标用户列表。列表中的用户 ID 用逗号分隔。

  • ANY 每个被授予者的潜在目标用户的列表中均包含具有登录口令的所有数据库用户。

  • ANY WITH ROLES 必须包含现有角色,而每个被授予者的潜在目标用户列表必须包含具有登录口令的数据库用户,这些用户具有 中的角色子集。角色列表用逗号分隔。

  • userID 每个 都必须是现有用户或不可变角色的名称。该列表必须包含具有登录口令的现有用户。列表中的 userID 用逗号分隔。

  • WITH ADMIN OPTION (仅在与 ANY 子句结合使用时有效)用户既可以发出 SETUSER 命令来模仿其他用户,也可以将 SET USER 系统特权授予其他用户。

  • WITH ADMIN ONLY OPTION (仅在与 ANY 子句结合使用时有效)用户可将 SET USER 系统特权授予其他用户,但不能发出 SETUSER 命令用于模仿其他用户。

  • WITH NO ADMIN OPTION 用户可发出 SETUSER 命令用于模仿其他用户,但不能将 SET USER 系统特权授予其他用户。

    示例

  • 示例 1为 Sally 和 Laurel 授予充当 Bob、Sam 和 Peter 的能力:GRANT SET USER (Bob, Sam, Peter) TO (Sally, Laurel)

  • 示例 2为 Mary 授予将 SET USER 系统特权授予数据库中任何用户的权限。但是,由于使用 WITH ADMIN ONLY OPTION 子句授予系统特权,因此,Mary 无法模仿任何其他用户。GRANT SET USER (ANY) TO Mary WITH ADMIN ONLY OPTION

  • 示例 3为 Steve 和 Joe 授予模仿 Role1 或 Role2 的任意成员的能力:GRANT SET USER (ANY WITH ROLES Role1, Role2) TO Steve, Joe

    用法

    可为某位用户授予模仿数据库中任意用户 (ANY),或仅模仿特定用户 ( ) 或模仿特定角色成员 (ANY WITH ROLES ) 的权限。仅当使用 ANY 子句时才能授予 SET USER 系统特权的管理权限。

    如果未指定子句,则缺省情况下使用 ANY。如果未在授予语句中指定任何管理子句,则使用 WITH NO ADMIN OPTION 子句。

    重新向用户授予 SET USER 系统特权时,重新授予行为的影响是累积的。

    缺省情况下,使用 WITH NO ADMIN OPTION 子句将 SET USER 系统特权授予 SYS_AUTH_SSO_ROLE 兼容性角色(前提是存在该角色)。

    为某用户授予 SET USER 系统特权仅仅是授予其模仿其他用户的权限。在发出 SETUSER 语句前,不会对成功模仿其他用户所需的必要条件进行校验。

    标准

    符合 ANSI SQL 的级别:Transact-SQL 扩展。

    权限

  • 已授予 SET USER 系统特权以及管理权限。

  • 每个指定目标用户 (target_users_list) 都是具有登录口令的现有用户角色或用户扩展角色。

  • 每个指定目标角色 (target_roles_list) 都必须是现有用户扩展角色或用户定义角色。