📑
Azure SQL DBの認証について-【Microsoft Entra認証】
やること
Azure SQL DBのMicrosoft Entra認証についてまとめます
前提
下記で構築したSQLDB及びテーブルを使用する
SSMSは、ダウンロード済みであること
Azure SQLDBの認証2選
1.SQL認証
の2つです
Microsoft Entra認証
Microsoft Entra 認証を使用すると、データベース ユーザーと他の Microsoft サービスの ID を一元管理できます
ID の一元管理では、1 か所でデータベース ユーザーを管理できるようになるため、アクセス許可の管理が容易になります
Microsoft Entra認証を有効にするまでの手順
- SQL Serverをクリック
- 「Microsoft Entra ID」をクリック
- 「管理者の設定」をクリックする
- 管理者ユーザーを選択する
- 「保存」をクリック
- 「このサーバーに対してMicrosoft Entra認証のみをサポートする」を選択し、「はい」をクリック
- 「保存」をクリック
- SQLDBの「クエリエディター(プレビュー)」をクリック
- SQL Server認証でログインを行い、エラーになることを確認
- Microsoft Entra認証をクリック
- ログインできることを確認
ログインユーザー作成手順
- SSMSを立ち上げる
- 下記のように入力し、「接続(C)」をクリック(※管理者で設定したユーザで)
- パスワードを入力後、「サインイン」をクリック
- 「新しいクエリ(N)」をクリック
- 下記のクエリを実行し、ログインユーザーを作成する
CREATE USER [メールアドレス] FROM EXTERNAL PROVIDER;
データベースユーザー作成手順
- 「master」から「SQLDatabase(名)」に変更する
- 下記のクエリを実行し、SQLDBにユーザーを作成する
CREATE USER [メールアドレス] FROM EXTERNAL PROVIDER;
データベースユーザーにロールを付与する手順
- 下記のクエリを実行し、権限を付与する
ALTER ROLE db_datareader ADD MEMBER [メールアドレス];
- 下記のクエリを実行し、ロールが付与されたかを確認する
SELECT
sp_role.name AS role_name,
sp_member.name AS member_name
FROM
sys.database_role_members rm
LEFT JOIN
sys.database_principals sp_role
ON
rm.role_principal_id = sp_role.principal_id
LEFT JOIN
sys.database_principals sp_member
ON
rm.member_principal_id = sp_member.principal_id
ロールの名前と説明
ロールの名前 | 説明 |
---|---|
db_owner | db_owner 固定データベース ロールのメンバーは、データベースでのすべての構成とメンテナンス作業を実行でき、SQL Server でデータベースを drop することもできます。 (SQL Database と Azure Synapse では、一部のメンテナンス作業にサーバー レベルのアクセス許可が必要であり、db_owners は実行できません。) |
db_securityadmin | db_securityadmin 固定データベース ロールのメンバーは、カスタム ロールのロール メンバーシップのみの変更、および権限の管理を実行できます。 このロールのメンバーは、特権を昇格させる可能性があり、そのアクションを監視する必要があります。 |
db_accessadmin | db_accessadmin 固定データベース ロールのメンバーは、Windows ログイン、Windows グループ、および SQL Server ログインのデータベースに対するアクセスを追加または削除できます。 |
db_backupoperator | db_backupoperator 固定データベース ロールのメンバーは、データベースをバックアップできます。 |
db_ddladmin | db_ddladmin 固定データベース ロールのメンバーは、すべての DDL (データ定義言語) コマンドをデータベースで実行できます。 このロールのメンバーは、高い特権で実行される可能性があるコードを操作することで、特権を昇格させ、そのアクションを監視する必要があります。 |
db_datawriter | db_datawriter 固定データベース ロールのメンバーは、すべてのユーザー テーブルのデータを追加、削除、または変更できます。 ほとんどのユース ケースでは、このロールが db_datareader メンバーシップと組み合わされ、変更されるデータの読み取りが可能になります。 |
db_datareader | db_datareader 固定データベース ロールのメンバーは、すべてのユーザー テーブルとビューからすべてのデータを読み取ることができます。 ユーザーオブジェクトは、sys と INFORMATION_SCHEMA を除くどのスキーマにも存在できます。 |
db_denydatawriter | db_denydatawriter 固定データベース ロールのメンバーは、データベース内のユーザー テーブルのデータを追加、変更、または削除することはできません。 |
db_denydatareader | db_denydatareader 固定データベース ロールのメンバーは、データベース内のユーザー テーブルとビューのデータを読み取ることはできません。 |
Discussion