4

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

对远程服务器的访问被拒绝,因为不存在登录映射。

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

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

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

4

2 回答 2

8

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

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

于 2009-05-27T18:56:50.850 回答
0

需要两个登录名/密码对。一种是针对上面有链接服务器的 SQL 服务器。第二个是链接服务器正在连接的“事物”。例如,在 SQL 服务器所在的同一台机器上有一个 ODBC 连接。此 ODBC 连接连接到 ORACLE db。在 ODBC 设置期间,需要用户名和密码:UN "XYZ", PWD "123"。在创建与此 ODBC 连接的链接服务器时,需要添加用户名“XYZ”和密码“123”。这是在链接服务器属性的安全页面上完成的。单击“添加”并在“本地登录”框中输入应用程序用于连接到 SQL 服务器的 SQL 服务器用户名。在“远程用户”框中输入“XYZ”,在“远程密码”中输入“123”。

于 2014-04-21T18:41:01.050 回答