连接到同一个数据库,但作为另一个用户,无需对连接字符串进行硬编码

时间:2011-03-29 23:28:11

标签: sql-server stored-procedures

我可以使用存储过程中的OPENDATASOURCE(或其他机制)连接到不同用户的同一数据库吗?如果是这样,怎么样?

数据库应该部署到多个客户,并由他们复制多次,等等。因此,我 CAN NOT HARDCODE 数据库服务器的名称或数据库的名称

(我尝试使用OPENDATASOURCE,但它只接受硬编码的连接字符串。)

2 个答案:

答案 0 :(得分:1)

可能EXECUTE AS在你的情况下工作吗? http://msdn.microsoft.com/en-us/library/ms181362.aspx

答案 1 :(得分:0)

您可以使用登录的当前安全上下文(或适用于您的情况的其他选项)设置链接服务器以连接到远程服务器。

从您的存储过程中,您可以使用SELECT * FROM mylinkedservername.mylinkedserverdatabase.dbo.mytable

之类的内容访问它

但是你说你想连接到相同的数据库,但使用不同的登录?你正在寻找假扮。也许你可以这样做一个引用自己的链接服务器,我还没有尝试过。搜索Microsoft帮助文档,了解如何正常设置它并测试它是否符合您的要求。