Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
允许数据库管理员假设同一连接上另一位授权用户的标识。
{ SET SESSION AUTHORIZATION | SETUSER } [ [ WITH OPTION ] userid ]
WITH OPTION 子句 缺省情况下,只变更权限(包括组成员资格)。如果指定 WITH OPTION,生效的数据库选项更改为 userid 的当前数据库选项。
userid 用户 ID 是标识符(SETUSER 语法)或字符串(SET SESSION AUTHORIZATION 语法)。请参见标识符和字符串。
SETUSER 语句仅供管理使用,不应将其用于连接池。运行 SETUSER 语句后,可以通过执行以下命令之一来验证假设的是哪一种用户授权:
不带用户 ID 的 SETUSER 撤消前面所有的 SETUSER 语句。
过程、触发器、事件处理程序和批处理中不能使用 SETUSER 语句。
SETUSER 语句有以下几种用途:
创建对象 可以使用 SETUSER 创建由其他用户拥有的数据库对象。
权限检查 通过充当其他用户(具有他们的权限和组成员资格),数据库管理员可以测试查询、过程、视图等的权限和名称解析。
为管理员提供更安全的环境 数据库管理员具有在数据库中执行任何操作的权限。如果想要确保不会在无意中执行错误的操作,可使用 SETUSER 切换为具有较少权限的另一用户 ID。
过程、触发器、事件或批处理中不能使用 SETUSER 语句。
DBA 特权。
SQL/2008 SET SESSION AUTHORIZATION 语法是可选 SQL/2008 语言功能 F321 "用户授权" 的一部分。SETUSER 语法是一个服务商扩充。可以将 WITH OPTION 语法与两种变体结合使用,但 WITH OPTION 是服务商扩充。
下面的语句由名为 DBA 的用户执行,它将用户 ID 更改为 Joe,然后更改为 Jane,最后改回 DBA。
SETUSER "Joe" // ... operations... SETUSER WITH OPTION "Jane" // ... operations... SETUSER
以下语句将用户设置为 Jane。该用户 ID 作为字符串提供(而不是标识符)。
SET SESSION AUTHORIZATION 'Jane';