2009-05-27 9 views
4

リンクサーバーを直接照会するストアドプロシージャを実行できますが、ASP.NETと同じsprocを呼び出すと"ASP.NET"エラー:ログインマッピングが存在しないため、リモートサーバーへのアクセスが拒否されました

Access to the remote server is denied because no login-mapping exists.

私はSSMSで実行すると、自分のWindowsドメインアカウントを介して接続されています。

サイトは、ローカルマシン上のIIS 7およびSQL 2008でフォーム認証を使用するASP.NETです。

リンクサーバーは、すべてのログインに対して「このセキュリティコンテキストを使用して作成する」ように設定されています。

答えて

8

初期データベースに接続するログインでは、リンクされたデータベースにアクセスできません。なぜ、アプリケーションが偽装するアカウントを使用してManagement Studioのデータベースに接続し、そのような問題を診断しないのですか?ログインがわかっている場合は、リンクされたデータベースと必要な権限で作成してください。

リンクサーバーで新しいログインを作成することはできません。マッピングを作成します。ウィザードで細字を読むと、「上記のリストに定義されていないログインの場合、現在のセキュリティコンテキストを使用して接続が確立されます」と表示されます。つまり、マッピングを定義しないと、リンクの現在の資格情報が使用されます。

+1

問題を診断する方法は間違いありませんでした。初期データベースに接続するログインには、リンクされたサーバーを呼び出すために追加の権限(SysAdmin)が必要でしたが、「なぜ」が別の質問です。 –

0

2つのログイン/パスワードのペアが必要です。 1つは、リンクサーバーがあるSQLサーバー用です。 2番目は、リンクサーバーが接続している「もの」です。 など。 SQLサーバーがオンのマシンと同じマシンにODBC接続があります。 このODBC接続は、ORACLEデータベースに接続します。 ODBCセットアップ中に、UN "XYZ"、PWD "123"というユーザー名とパスワードが必要でした。 このODBC接続にリンクサーバーを作成するときは、ユーザー名 "XYZ"とパスワード "123"を追加する必要があります。これは、リンクされたサーバーのプロパティのセキュリティページで行われます。 [追加]をクリックし、[ローカルログイン]ボックスに、アプリケーションがSQLサーバーへの接続に使用するSQLサーバーユーザー名を入力します。 「リモートユーザー」ボックスに「XYZ」と入力し、「リモートパスワード」に「123」と入力します。最後に、「ログインの現在のセキュリティコンテキストを使用して作成する」を選択します。

関連する問題