SQL Server 2022 より、オンプレミス環境においても Azure AD を利用した認証を実施することが可能となりました。
今回は、オンプレミス SQL Server 2022 上で Azure AD 認証用ログイン/ユーザーを作成する方法について、自分の整理も兼ねてまとめてみようと思います。
※ Amazon EC2、Google Cloud Compute Engine 上にインストールされた SQL Server 2022 についても、同様に Azure AD 認証設定を実施することが可能。
- 前提条件
- Azure AD 認証用ログイン/ユーザー作成手順 (SQL Server 2022以降)
- Azure AD 認証用ログインによるオンプレミス SQL Server 2022への接続方法
- まとめ
前提条件
オンプレミス SQL Server 2022 上で Azure AD 認証用ログイン/ユーザーを作成するためには、以下の前提条件を満たす必要があります。
- SQL Server 2022 および SQL Serverをインストールしているサーバー (Windows/Linux) が Azure Arc に登録されている必要がある。
- Azure AD 上に認証用アプリケーションを登録する必要がある。
- Azure KeyVault 上に 認証用アプリケーション用の証明書を作成する必要がある。
参考URL
Azure AD 認証用ログイン/ユーザー作成手順 (SQL Server 2022以降)
1) SQL Server Management Studio (SSMS) を起動し、管理者権限(sysadmin)が付与されたログイン (saなど) で接続します。
2) 「新しいクエリ」を選択します。
3) 以下のコマンドを実行し、Azure ポータル - Azure Arc - インフラストラクチャ : SQL サーバー - 登録されている SQL Server 2022 インスタンス - 設定 : Azure Active Directory - Azure Active Directory 管理者 に登録された管理者ログインに対して管理者権限 (sysadmin) を付与します。
※ 本手順では管理者ログインを「admin@test.com」とします。
use master go ALTER SERVER ROLE sysadmin ADD MEMBER [admin@test.com] go |
4) 以下のコマンドを実行し、新しいログインを作成します。
※ 本手順では Azure AD 上に存在する「testuser@test.com」ユーザーに紐づくログインを作成します。
※ Azure AD グループ、Azure ADに登録したアプリケーションに紐づくログインも作成可能となります。
use master go CREATE LOGIN [testuser@test.com] FROM EXTERNAL PROVIDER go |
<補足>
必要に応じて作成した新規ログインに対して、必要なロールを割り当てます。
[例] 「testuser@test.com」ログインに対して管理者権限(sysadmin) を付与する場合
use master EXEC sp_addsrvrolemember @loginame='testuser@test.com', @rolename='sysadmin' |
5) 以下のコマンドを実行し、4) で作成したログインが作成されていることを確認します。
use master go SELECT * FROM sys.server_principals WHERE type_desc = 'EXTERNAL_LOGIN' go |
6) 以下のコマンドを実行し、4) で作成したログインに紐づくデータベース ユーザーを作成します。
※ 本手順では ユーザーデータベース上で「testuser@test.com」ログインに紐づく、「testuser@test.com」という名前のデータベース ユーザーを作成しています。
※ 本コマンド実行後、ユーザー データベースに対して該当のログイン紐づくデータベース ユーザーが作成されます。
use <ユーザーデータベース> go CREATE USER [testuser@test.com] FROM LOGIN [testuser@test.com]; go |
<補足>
必要に応じてユーザーデータベース上に作成したデータベース ユーザーに対して必要な権限を割り当てます。
Azure AD 認証用ログインによるオンプレミス SQL Server 2022への接続方法
1) SQL Server Management Studio (SSMS) を起動します。
2) 必要項目に入力後、「オプション」を選択します。
サーバー名 : SQL Server 2022のインスタンス名を指定 (Azure Arcに登録されているインスタンス名)
認証 : Azure Active Directory - パスワード
※ 「Azure Active Directory - MFAで汎用」、「Azure Active Directory - 統合」などによる認証も可能です。 詳細は以下のURLを参照。
ユーザー名 : Azure AD認証用に指定したログイン名を指定
パスワード : ログインに紐づく Azure AD ユーザーのパスワードを指定
3) 必要項目に入力、選択後、「接続」を選択します。
データベースへの接続 : 接続するユーザーデータベース名を指定。
暗号化接続 : チェック
サーバー証明書を信頼する : チェック
4) オンプレミス SQL Server 2022 インスタンスに Azure AD認証により接続が確立されたことを確認します。
まとめ
今回は、オンプレミス SQL Server 2022 上で Azure AD 認証用ログイン/ユーザーを作成する方法についてまとめてみました。
本機能を利用するためには、前提条件としてオンプレミス上の SQL Server 2022 がインストールされたサーバー および SQL Server 2022 インスタンス が Azure Arc に登録されている必要があります。
Azure Arc への登録は若干の作業が必要になりますが、SQL Serverへの接続ログインを一元的に管理が可能となるため、SQL Server 2022 へのリプレースのタイミングなどで本機能を利用することを検討してみると良いかもしれません。
※ 2023年3月 時点