リンクサーバー(SQL Server 2014)を介して別のサーバーをクエリするビューを作成しました。
このビューを使用するには、開発者に権限を付与する必要があります。
選択のみを許可するだけでは不十分で、次のエラーが発生しました:
ログインマッピングが存在しないため、リモートサーバーへのアクセスが拒否されました。
このビューから選択できるようにユーザーに与えることができる最も制限された権限は何ですか?
SQLログインを使用してリンクサーバーに接続し(このセキュリティコンテキストを使用して作成)、このビューをユーザーに照会できます。 Active Directoryユーザーでこのビューをクエリすることもできます。リンクサーバーログインでリンクサーバーにアクセスするために接続しようとしませんでしたが、ログインの接続に問題がある場合、ADユーザーはリンクサーバーに接続できませんでした。
テストのために、このユーザーにsysadminを付与しました。このビューにクエリを実行できるため、アクセス許可の問題です。 sysadminを付与する前は、ユーザーにはpublicのみがあり、サーバーレベルでの特別な権限はなく、ビューのデータベースにはdb_readerしかありませんでした。
@provstr=N'ApplicationIntent=ReadOnly'
なしでリンクサーバーを再作成しています
パラメータ解決済みno login-mapping exists
error。したがって、選択許可で十分です。
表示されるメッセージは、指定した資格情報とターゲットマシンの資格情報の間にマッピングがないことを示しています。リンクサーバーのセットアップに使用する資格情報にもログインがあるか、リンクサーバーのログインにマップできることを確認する必要があります。
あなたがそれを設定したとき、あなたはリモートマシンにログインしているのであなたのために働いたオプションBe made using the login's current security context
を指定したのではないかと思います-しかし、彼らはリンクサーバー。 (ただの直感)
リンクサーバーの設定方法とすべてのオプションのガイドは次のとおりです。リンクサーバーへの接続や他のアカウントの追加に使用しているセキュリティコンテキストを変更する必要があるかもしれません。