“ASP.NET”错误:拒绝访问远程服务器,因为不存在登录映射

时间:2009-05-27 18:38:21

标签: asp.net sql-server sql-server-2008 linked-server

我能够执行直接查询链接服务器的存储过程,但是当我通过ASP.NET调用相同的sproc时,我收到以下错误:

  

拒绝访问远程服务器   因为没有登录映射。

当我通过SSMS执行时,我通过Windows域帐户连接。

该站点是ASP.NET,在我的本地计算机上使用IIS 7和SQL 2008上的表单身份验证。

对于所有登录,链接服务器设置为“使用此安全上下文制作”。

2 个答案:

答案 0 :(得分:8)

您与初始数据库连接的登录名无权访问链接数据库。为什么不使用应用程序模拟连接到Management Studio中的数据库的帐户,并以这种方式诊断问题?如果您知道登录,只需在链接数据库中创建它以及所需的权限。

如果无法在链接服务器上创建新登录,请创建映射。如果您在向导上阅读了精细打印,则会显示“对于未在上面列表中定义的登录,将使用当前安全上下文建立连接”。这意味着如果您没有定义映射,它将使用链接的当前凭据。

答案 1 :(得分:0)

需要两个登录/密码对。一个用于具有链接服务器的SQL服务器。第二个用于''链接服务器正在连接到。 例如。 SQL服务器所在的同一台机器上有一个ODBC连接。 此ODBC连接连接到ORACLE数据库。在ODBC设置期间,需要用户名和密码:UN" XYZ",PWD" 123"。 创建链接服务器到此ODBC连接时,必须添加用户名" XYZ"和密码" 123"。这是在链接服务器属性的安全性页面上完成的。点击"添加"并在本地登录'框输入应用程序用于连接SQL Server的SQL Server用户名。在“远程用户”中框输入' XYZ'并在“远程密码”中输入' 123'。最后选择使用登录的当前安全上下文'。