4

リンクサーバーに直接クエリを実行するストアドプロシージャを実行できますが、ASP.NETを介して同じsprocを呼び出すと、次のエラーが発生します。

ログインマッピングが存在しないため、リモートサーバーへのアクセスが拒否されます。

SSMSを介して実行すると、Windowsドメインアカウントを介して接続されます。

このサイトは、IIS7ではFormsAuthenticationを使用し、ローカルマシンではSQL2008を使用するASP.NETです。

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

4

2 に答える 2

8

最初のデータベースに接続するログインには、リンクされたデータベースへのアクセス権がありません。アプリケーションが偽装したアカウントを使用してManagementStudioのデータベースに接続し、その方法で問題を診断してみませんか?ログインを知っている場合は、必要な権限を使用して、リンクされたデータベースにもログインを作成してください。

リンクサーバーに新しいログインを作成するオプションがない場合は、マッピングを作成します。ウィザードの詳細を読むと、現在のセキュリティコンテキストを使用して、「上記のリストで定義されていないログインの場合、接続が確立されます」と表示されます。つまり、マッピングを定義しない場合、リンクの現在のクレデンシャルが使用されます。

于 2009-05-27T18:56:50.850 に答える
0

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

于 2014-04-21T18:41:01.050 に答える