SqlServer 2000では、SqlServer 2005マシンへのリンクサーバーを作成し、「サーバータイプ」を「SQLサーバー」(最初のラジオボタン)に設定し、リンクサーバー名をリモートマシンのホスト名に設定しました。
ただし、SqlServer 2000は、2005サーバー上にある多くのカタログのうち1つしか表示できません。その1つのカタログのテーブルから問題なく選択できますが、同じ2005サーバー上の他のカタログにはアクセスできません。
これがなぜ起こっているのかを理解するために私が探すことができる設定にはどのようなものがありますか、またはリンクサーバーでSqlServer 2000が参照できるカタログの数に制限はありますか?
リンクサーバーのセキュリティ設定を編集して、リンクサーバー経由でアクセスするすべてのカタログへのアクセス許可を持つSQL 2005インスタンスへのログインを指定する必要があります。正確な手順を説明するためのSQL 2000サーバーはもうありませんが、これは SQL 2000リンクサーバーのセキュリティを確立する方法 。
編集:
リンクされたサーバーが現在ログインしている資格情報を使用できるようにするには、SQL Server Centralでこの記事の Kerberos認証の構成 を参照してください。ターゲットサーバーに対して認証するためのユーザー。 SQL Serverの信頼の委任の設定 に関する私の質問への回答も参照してください。
Kerberosを途中まで設定しているため、この問題が発生しています。ダブルホップの問題が発生しています。過去数日の間に、リンクサーバーのセットアップについていくつかのことを学びました。 「 SQL Server 2008でKerberosの制約付き委任を実装する方法 」に関するこのドキュメントは、私に最も役立ちました。
リンクサーバーでの統合セキュリティの使用に関する重要なポイントは次のとおりです(つまり、「ログインの現在のセキュリティコンテキストを使用して作成する」)
やった!
すべてのサーバーを相互にリンクするために使用されるリモートログインIDには、データベースへの読み取り/書き込みアクセス権が必要です。
データベースへの読み取りおよび書き込みアクセスを許可するとすぐに、データベースはリンクサーバーの下のカタログのリストに表示されます。
各データベース>セキュリティ>ユーザーに移動し、リモートログインを見つけます。そこにない場合は、サーバーレベル>セキュリティ>ユーザー>ユーザーマッピングに移動し、リンクするデータベースを確認します。ここで、リモートログインに読み取り/書き込み権限があることを確認します。データベース>セキュリティ>ユーザー>所有スキーマに移動して、db_datareaderやdb_datawriterを確認します。
幸運を!
ジャウィド