此语句用于允许数据库管理员模拟其他用户和启用连接池。
{ SET SESSION AUTHORIZATION | SETUSER } [ [ WITH OPTION ] userid ]
提供 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'; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |