Daniel Williams Asked: 2012-08-16 14:01:35 +0800 CST2012-08-16 14:01:35 +0800 CST 2012-08-16 14:01:35 +0800 CST 以不同用户身份登录的 T-SQL 命令? 772 是否有一个 T-sql 命令,比如 Oracle “Connect”,它可以让我更改我登录的用户? sql-server t-sql 4 个回答 Voted Best Answer World Wide DBA 2012-08-16T14:03:24+08:002012-08-16T14:03:24+08:00 您可以使用 EXECUTE AS 命令: http://msdn.microsoft.com/en-us/library/ms181362.aspx njvds 2012-08-16T17:58:44+08:002012-08-16T17:58:44+08:00 您也可以尝试 SetUser 'username'。要恢复只需运行 SetUser。通过运行 select suser_name() 进行验证 Jon Seigel 2012-08-16T14:24:25+08:002012-08-16T14:24:25+08:00 在 SQLCMD 模式下使用 sqlcmd.exe 或 Management Studio,您可以使用:connect宏在脚本中间更改连接。(请参阅此处了解完整的语法——奇怪的是,我在 MSDN 上找不到这方面的文档。) 如果您只需要以不同的委托人身份进行测试,则可以使用EXECUTE AS来模拟委托人并REVERT退出。 Dave Leininger 2012-08-16T16:12:41+08:002012-08-16T16:12:41+08:00 该问题有多个答案,具体取决于“更改我登录的用户”的上下文。 公共网站将有一个或几个“用户帐户”,供每个网站访问者使用。即使通过这些帐户,也可能需要提升执行权限,例如,在解决多变量搜索需求时执行动态 SQL。 Errand Sommarskog 对在存储过程中通过 T-SQL 对用户帐户的安全性和管理进行了非常详细的讨论。 http://www.sommarskog.se/grantperm.html
您可以使用 EXECUTE AS 命令:
http://msdn.microsoft.com/en-us/library/ms181362.aspx
您也可以尝试 SetUser 'username'。要恢复只需运行 SetUser。通过运行 select suser_name() 进行验证
在 SQLCMD 模式下使用 sqlcmd.exe 或 Management Studio,您可以使用
:connect
宏在脚本中间更改连接。(请参阅此处了解完整的语法——奇怪的是,我在 MSDN 上找不到这方面的文档。)如果您只需要以不同的委托人身份进行测试,则可以使用
EXECUTE AS
来模拟委托人并REVERT
退出。该问题有多个答案,具体取决于“更改我登录的用户”的上下文。
公共网站将有一个或几个“用户帐户”,供每个网站访问者使用。即使通过这些帐户,也可能需要提升执行权限,例如,在解决多变量搜索需求时执行动态 SQL。
Errand Sommarskog 对在存储过程中通过 T-SQL 对用户帐户的安全性和管理进行了非常详细的讨论。 http://www.sommarskog.se/grantperm.html