允许用户临时采用其他用户的角色和系统特权(也称为模仿)来执行操作,前提是该用户已具有执行任务所需的最低特权。
注意 SET USER 系统特权是两个词;而 SETUSER 语句是一个词。
快速链接:
转至参数
转至用法
转至标准
转至权限
SETUSER 必要条件验证在执行 SETUSER 语句时进行,而不是在授予 SET USER 系统特权时进行。
要终止成功的模仿,可发出 SETUSER 语句,而不指定 userID。
符合 ANSI SQL 的级别:Transact-SQL 扩展。
需要以下各项:
OPTION 和 WITH ADMIN ONLY OPTION 子句授予类似的管理权限。此外,还会认为这些子句授予的管理权限比 WITH NO ADMIN OPTION 子句授予的权限要高。例如,使用 WITH ADMIN OPTION 子句向 User1 授予 Role1,使用 WITH ADMIN ONLY 子句向 User2 授予 Role1,使用 WITH NO ADMIN OPTION 子句向 User3 授予 Role1。将授予 User1 和 User2 具有类似管理权限的 Role1。将授予 User1 和 User2 管理权限比 User3 高的 Role1。
SET USER 和 CHANGE PASSWORD 系统特权支持扩展。将 ANY 子句视为 SET USER 系统特权,则模仿者必须也具有 ANY 授权。 如果同时使用 SET USER 系统特权,则必须同时使用这两个子句授予模仿者系统特权,并且每个子句的目标列表必须与目标用户的相应子句授权列表相同,或是其列表的超集。例如,如果模仿者和目标用户的目标列表分别包含 User1、User2 及 Role1、Role2,则每个子句的目标列表授权将视为相同。或者,如果模仿者的目标列表授权分别包含 User1、User2、Role1 和 Role2,而目标用户的目标列表授权仅包含 User1 和 Role2,则认为模仿者的目标列表授权是目标用户列表的超集。 如果已使用单个目标列表子句授予目标用户 SET USER 系统特权,则模仿者的目标列表必须与目标用户的列表相同,或是其列表的超集。例如,模仿者和目标用户的 SET USER 系统特权,则模仿者必须也具有 ANY 授权。
SET USER 系统特权,则必须同时使用这两个子句授予模仿者系统特权,并且每个子句的目标列表必须与目标用户的相应子句授权列表相同,或是其列表的超集。例如,如果模仿者和目标用户的目标列表分别包含 User1、User2 及 Role1、Role2,则每个子句的目标列表授权将视为相同。或者,如果模仿者的目标列表授权分别包含 User1、User2、Role1 和 Role2,而目标用户的目标列表授权仅包含 User1 和 Role2,则认为模仿者的目标列表授权是目标用户列表的超集。
SET USER 系统特权,则模仿者的目标列表必须与目标用户的列表相同,或是其列表的超集。例如,模仿者和目标用户的