リンクサーバーにより、SQL Server はリモート データソースからデータを読み取り、リモート データベースでコマンドを実行できます。このページでは、Cloud SQL インスタンス権限、リンクサーバーを実装する際の考慮事項、リンクサーバーの使用に関する制限について説明します。
リンクサーバー インスタンスの権限
リンクサーバーを設定するには、次のインスタンスとユーザー権限が必要です。
ALTER ANY LINKED SERVER
: インスタンスにcloudsql enable linked servers
フラグを追加すると、Cloud SQL がこの権限を付与します。ALTER ANY LOGIN
: Cloud SQL は、Cloud SQL インスタンスの管理者ユーザーにこの権限を自動的に付与します。この権限があると、Cloud SQL のログインとリンクサーバーのセキュリティ アカウントの間のマッピングを作成できます。
Cloud SQL インスタンスで使用できるデフォルトの権限のリストについては、デフォルトの SQL Server ユーザーをご覧ください。
追加のアカウントに ALTER ANY LINKED SERVER
権限または ALTER ANY
LOGIN
権限を付与する方法については、サーバー権限の付与の例をご覧ください。
リンクサーバーを使用する際の考慮事項
このセクションでは、リンクサーバーでのセキュリティ、パフォーマンス、信頼性に対処するための推奨事項について説明します。
セキュリティ
セキュリティの脆弱性を軽減するには、リンクサーバーに、次のような強力なセキュリティ プロトコルが適用されていることを確認する必要があります。
- SSL 暗号化などの適切な認証と認可のメカニズムを実装します。
- 厳格なパスワード ポリシーを実装します。
- 承認されたユーザーのみがリンクサーバーにアクセスできるようにしてください。
- センシティブ データが適切に暗号化され、保護されていることを確認します。
- ログインでは、構成中に使用するリソースにのみアクセスできるようにします。
パフォーマンス
リンクサーバーのパフォーマンスに影響を与える可能性のある要因はいくつかあります。
- リンクサーバーでは、各サーバーが転送するデータの量によっては、クエリが複雑な場合にレイテンシが発生し、パフォーマンスが低下する可能性があります。このため、リアルタイムのデータ同期が必要なアプリでは問題が発生する可能性があります。
- リンクサーバーを使用してクエリを実行すると、データベース エンジンが新しい接続を作成し、実行するすべてのクエリでデータを取得します。データはキャッシュに保存されず、リンクサーバーを使用するたびに、サーバーがネットワーク全体でテーブルをコピーする場合があります。
- Cloud SQL は、リモート サーバーがインデックスと統計情報を処理する方法を認識していないため、リモート サーバー用に最適化された実行プランを作成できません。
パフォーマンスを最適化するには、次の手順を実施します。
- クエリを慎重に設計し、必要なデータのみがサーバー間で転送されるようにます。
- SQL Server の分散クエリ機能を活用する。
- 複数のサーバー間でクエリを分散します。
- リンクサーバーの構成を定期的にモニタリングし、最適化して、スムーズに稼働していることを確認します。
信頼性
サーバー間のリンクの中断や障害により、大幅なダウンタイムが発生し、データが失われる可能性があります。
信頼性の高いオペレーションを実現するには、適切なフェイルオーバーと冗長性メカニズムを実装することが重要です。これには、以下が含まれます。
- フェイルオーバー用のバックアップ リンクサーバーを実装します。
- サーバーの可用性とパフォーマンスをモニタリングします。
- リンクサーバーの構成を定期的にテストおよび検証します。
制限事項
Cloud SQL のリンクサーバーには、次の制限があります。
- リンクサーバーで SQL Server 以外のデータソースを使用することはできません。
- リンクサーバーで Active Directory 認証を使用することはできません。
リンクサーバーの制限の完全なリストについては、サポートされていない機能とサービスをご覧ください。
次のステップ
- リンクサーバーの有効化、追加、構成の方法を学習する。