SQL ログインとグループを移行する
SQL Server データベースを Azure SQL にシームレスかつ安全に移行するには、セキュリティ情報の移行を理解し、効果的に管理することが不可欠です。
SQL ログインとグループを移行するタイミングを決定する
さまざまな部署にサービスを提供する大きなオンプレミスの SQL Server インフラストラクチャを持つ大規模組織があるとします。 各部署には、特定のニーズに合わせてカスタマイズされた独自の SQL ログイン、ユーザー ロール、およびアクセス許可のセットがあります。 組織は、クラウドのスケーラビリティの利点を活用するために、これらのデータベースを Azure SQL Database に移行することにしました。
このシナリオでは、データベースの移行前にログインを事前に移行すると、テスト フェーズに不要な複雑さが生じる可能性があります。
データベース移行プロジェクトの最後にログインを移行すると、特に複雑なシナリオでのテストが簡単になります。 ログインが事前に移行されると、データベース スキーマの進展によりテストの遅延をもたらす可能性があります。 ログインの移行を待機すると、セキュリティ構成を最終的な構造に合わせて調整できるため、特にテーブルに依存するセキュリティがデータ保護に不可欠なときに、移行プロセスが簡略化されます。
課題 | 説明 |
---|---|
複雑なアクセス許可の構造 | ログインを後で移行すると、移行中にデータベース構造が進展するのに合わせてアクセス許可を調整できます。 |
テストの遅延 | ログインを早期に移行すると、テストが遅くなり、スキーマの変更とともにセキュリティ検証が複雑になる可能性があります。 |
テーブル依存のセキュリティ | ログイン移行を遅延すると、移行中に最終的なデータベース構造が変更された場合、それと一致するようにセキュリティ構成を調整できます。 |
このシナリオでは、このアプローチを使用すると、セキュリティ対策を最終的なデータベース構造に完全に適合させ、潜在的な複雑さを軽減し、移行プロジェクトをより管理しやすくすることに集中できます。
Azure 移行拡張機能の使用
移行後のタスクの一環として、Azure Data Studio の Azure 移行拡張機能を使用して、オンプレミスの SQL Server から Azure SQL ターゲットにログインとサーバー ロールを移行できます。 このログイン移行エクスペリエンスは、ログインと対応するユーザー マッピングとの同期、サーバーのアクセス許可とサーバー ロールのレプリケートなどの手動タスクを自動化します。
現在、移行拡張機能は、Azure SQL Managed Instance または Azure VM ターゲットでの SQL Server のみをサポートしています。
- Azure SQL Managed Instance - Windows アカウントと SQL ログインの両方。
- Azure VM での SQL Server - SQL ログインのみ
データベースの移行を完了しない状態でログイン移行プロセスが開始された場合でも、ログインとサーバー ロールの移行は行われますが、ログイン/ロールのマッピングが正しく実行されません。 このログイン移行プロセスは、ログインと関連するユーザー マッピングとの同期、サーバーのアクセス許可とロールのレプリケートなどの手動タスクを自動化します。
Azure Data Studio の Azure SQL 移行拡張機能、PowerShell、または Azure CLI を使用して、ログイン移行プロセスを開始できます。
Azure Data Studio の移行拡張機能を使用してログインを移行するには、次の手順に従います。
Azure Data Studio から Azure SQL 移行拡張機能を起動し、SQL Server ログイン移行ウィザードを開始します。
[手順 1: Azure SQL のターゲット] で、Azure SQL ターゲットに接続します。
[Step 2: Select login(s) to migrate] (手順 2: 移行するログインの選択) で、ソース SQL Server インスタンスからログインを選択します。
[手順 3: 移行の状態] で、ログイン移行プロセスを監視します。 ログイン移行が正常に完了すると (または障害が発生すると)、関連する最新情報がページに表示されます。
DMA を使用する
ログイン移行の一環として、Data Migration Assistant は、ソース SQL Server に存在するため、ターゲット SQL Server のセキュリティ保護可能なリソースにアクセス許可が割り当てられます。 ターゲット SQL Server にログインが既に存在する場合、Data Migration Assistant は、セキュリティ保護可能なリソースに割り当てられたアクセス許可のみを移行し、ログイン全体は再作成しません。 ログインがターゲット サーバーに既に存在する場合は、Data Migration Assistant によりログインがデータベース ユーザーにベスト エフォートでマップされます。
Data Migration Assistant は現在、次のものをサポートしていません。
- スタンドアロン セキュリティ証明書に関連付けられているログイン (証明書にマップされたログイン)
- スタンドアロン非対称キー (非対称キーにマップされたログイン)
- 資格情報にマップされたログイン
- 既定では、Data Migration Assistant は、移行するすべての修飾ログインを選択します。 必要に応じて、移行する特定のログインを選択できます。
Note
Database Migration Assistant は便利なツールですが、大規模な移行と全体的なエクスペリエンスの向上には、Azure Database Migration Service を使用することをお勧めします。これは、Azure Data Studio 用の Azure SQL Migration 拡張機能として、または Azure portal 経由で、または、Azure PowerShell および Azure CLI から使用できます。
MoveLogins スクリプト
MoveLogins スクリプトは、オンプレミスの SQL Server から Azure SQL Database またはその他の PaaS オファリングにログイン情報を転送するのに役立ちます。
Data Migration Assistant (DMA) にはセキュリティ情報を転送する機能があり、アクセス許可が正しく転送されるように完全な依存関係グラフを実行しますが、MoveLogins スクリプトには追加のオプションがあります。 これにより、ユーザーの Active Directory 検索が有効になり、DMA で現在サポートされていない機能であるユーザー プリンシパル名 (UPN) の取得を実行できます。
PowerShell で記述されたこのスクリプトは、ログイン、データベース ユーザー、ロール、およびアクセス許可を転送する T-SQL スクリプトを生成します。これをターゲット SQL 環境に適用できます。 これは、ターゲット環境でコマンドを実行しません。 生成されたスクリプト出力をターゲット環境に適用する前に、慎重に確認する必要があります。
このスクリプトは、Azure SQL Database を使用しているか、Azure SQL Managed Instance を使用しているかによって異なる結果を生成します。 Azure SQL Database では、Microsoft Entra ログインと、関連するデータベース ユーザーを作成できません。代わりに、Microsoft Entra ユーザーがデータベース レベルで作成されます。 Azure SQL Managed Instance の場合、サーバー レベルのログインとデータベース ユーザーを持つオンプレミスの SQL Server に似ています。
Note
ログインを転送するために、Azure 移行拡張機能などの専用の移行ツールをまず使用することをお勧めします。 これらの推奨ツールで問題が発生した場合は、MoveLogins スクリプトの使用などの代替の方法を検討できます。