"ASP.NET"错误:由于不存在登录映射,访问远程服务器被拒绝。

4
我可以执行一个直接查询联接服务器的存储过程,但是当我通过ASP.NET调用相同的存储过程时,会出现以下错误:
“因为不存在登录映射,所以访问远程服务器被拒绝。”
当我通过SSMS执行它时,我连接到我的Windows域帐户。
该站点是在我的本地机器上运行的IIS 7和SQL 2008上使用表单身份验证的ASP.NET网站。
联接服务器已设置为对所有登录用户“使用此安全上下文”进行设置。
2个回答

8
您连接到初始数据库的登录名没有访问链接数据库的权限。为什么不使用应用程序模拟身份连接到管理工具中的数据库,并通过此方式诊断问题呢?如果您知道登录名,只需在链接数据库中创建该用户,并赋予所需的权限即可。
如果在链接服务器上创建新的登录名不是一个选项,请创建映射。如果您仔细阅读向导中的说明,会发现它说“对于未在上述列表中定义的登录名,将使用当前安全上下文进行连接”。这意味着如果您不定义映射,则会使用当前凭据进行链接。

1
谢谢,那绝对是诊断问题的方法。登录连接到初始数据库需要额外的权限(SysAdmin)才能调用链接服务器,但“为什么”是另一个问题。 - Even Mien

0

需要两个登录/密码对。一个是用于具有链接服务器的SQL服务器的登录密码对。第二个是用于链接服务器连接到的“东西”的登录密码对。 例如: 在SQL服务器上有一个ODBC连接。 这个ODBC连接连接到ORACLE数据库。在ODBC设置期间需要用户名和密码:UN “XYZ”,PWD“123”。 在创建连接到此ODBC连接的链接服务器时,必须添加用户名“XYZ”和密码“123”。这是在链接服务器属性的安全页面上完成的。单击“ADD”,在“Local Login”框中输入应用程序用于连接到SQL服务器的SQL服务器用户名。在“Remote User”框中输入“XYZ”,在“Remote Password”框中输入“123”。最后选择“使用当前安全上下文使之成立的登录”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接