Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (P-Z)

 

SETUSER 语句

此语句用于允许数据库管理员模拟其他用户和启用连接池。

语法
{ SET SESSION AUTHORIZATION | SETUSER }
[ [ WITH OPTION ] userid ]
参数
  • WITH OPTION 子句   缺省情况下,只变更权限(包括组成员资格)。如果指定 WITH OPTION,生效的数据库选项更改为 userid 的当前数据库选项。

  • userid   用户 ID 是标识符(SETUSER 语法)或字符串(SET SESSION AUTHORIZATION 语法)。请参见标识符字符串

注释

提供 SETUSER 语句是为了使数据库管理变得更容易。它使具有 DBA 权限的用户能够模拟数据库的其他用户。当运行 SETUSER 语句后,可以通过运行以下命令之一来检查模拟的是哪一个用户:

也可以从应用程序服务器使用 SETUSER 以利用连接池。连接池可减少需要建立的非重复连接的数量,从而提高性能。

不带用户 ID 的 SETUSER 撤消前面所有的 SETUSER 语句。

过程、触发器、事件处理程序和批处理中不能使用 SETUSER 语句。

SETUSER 语句有以下几种用途:

  • 创建对象   可以使用 SETUSER 创建由其他用户拥有的数据库对象。

  • 权限检查   通过充当其他用户(具有他们的权限和组成员资格),数据库管理员可以测试查询、过程、视图等的权限和名称解析。

  • 为管理员提供更安全的环境   数据库管理员具有在数据库中执行任何操作的权限。如果想要确保不会在无意中执行错误的操作,可使用 SETUSER 切换为具有较少权限的另一用户 ID。

注意

过程、触发器、事件或批处理中不能使用 SETUSER 语句。

权限

必须具有 DBA 权限。

另请参见
标准和兼容性
  • SQL/2003   SET SESSION AUTHORIZATION 是核心特性。SETUSER 是服务商扩充。

示例

下面的语句由名为 DBA 的用户执行,它将用户 ID 更改为 Joe,然后更改为 Jane,最后改回 DBA。

SETUSER "Joe"
// ... operations...
SETUSER WITH OPTION "Jane"
// ... operations...
SETUSER

以下语句将用户设置为 Jane。该用户 ID 作为字符串提供(而不是标识符)。

SET SESSION AUTHORIZATION 'Jane';