Microsoft Entra ID を使用してデータベース認証を有効にする

完了

あらゆるセキュア データベースにある 2 つのコンポーネントは、認証と認可です。

認証は、ユーザーが本人の主張どおりの人物であることを証明するプロセスです。 ユーザーは、ユーザー アカウントを使用してデータベースに接続します。 ユーザーは、データベースへの接続を試みるときに、ユーザー アカウントと認証情報を提供します。 ユーザーは、次の 2 つの認証方法のいずれかを使用して認証されます。

  • SQL 認証 - この認証方法を使う場合、ユーザーはユーザー アカウント名とそれに関連付けられたパスワードを送信して接続を確立します。 このパスワードは、ログインにリンクされているユーザー アカウントのマスター データベースに格納されているか、ログインにリンクされて "いない" ユーザー アカウントが含まれるデータベースに格納されています。
  • Microsoft Entra 認証 - この認証方法では、ユーザーはユーザー アカウント名を送信して、Microsoft Entra ID に格納されている資格情報を使うことをサービスに要求します。

マスター データベースにユーザー アカウントを作成し、サーバー上のすべてのデータベースにアクセス許可を付与することもできます。また、データベース自体に作成することもできます (包含データベース ユーザーと呼ばれます)。 包含データベースを使うことで、移植性とスケーラビリティが向上します。

ログインとユーザー:Azure SQL では、データベース内のユーザー アカウントをマスター データベースに格納されているログインに関連付けることや、個々のデータベースに格納されているユーザー名をユーザー アカウントにすることができます。

  • ログインはマスター データベース内の個々のアカウントであり、それに対して 1 つ以上のデータベース内のユーザー アカウントをリンクできます。 ログインの使用時には、ユーザー アカウントの資格情報はログインと共に格納されます。
  • ユーザー アカウントはデータベース内の個々のアカウントであり、ログインにリンクされていることもありますが、その必要はありません。 ログインにリンクされていないユーザー アカウントの使用時には、資格情報はユーザー アカウントと共に格納されます。

データにアクセスし、さまざまなアクションを実行するための承認は、データベース ロールと明示的アクセス許可を使用して管理されます。 承認は、ユーザーに割り当てられるアクセス許可のことで、そのユーザーが実行できる操作を決定するものです。 ユーザー アカウントのデータベースのロール メンバーシップとオブジェクト レベルのアクセス許可によって制御されます。 ベスト プラクティスとして、必要最低限の特権をユーザーに付与することをお勧めします。 ベスト プラクティスとして、アプリケーションでは認証に専用アカウントを使用する必要があります。 この方法により、アプリケーションに付与されるアクセス許可を制限でき、アプリケーション コードが SQL インジェクション攻撃に対して脆弱な場合に、悪意のあるアクティビティのリスクを軽減できます。 包含データベース ユーザーを作成する方法をお勧めします。この方法により、アプリがデータベースから直接認証を受けることができます。

新規データベース作成後の既存のログインとユーザー アカウント

Azure SQL を初めてデプロイするときに、特別な種類の管理ログイン (サーバー管理者) 用のログイン名とパスワードを指定できます。マスター データベースとユーザー データベースにおける以下のログインとユーザーの構成は、デプロイ時に行われます。

  • 管理特権を持つ SQL ログインは、ユーザーが指定したログイン名を使用して作成されます。 ログインは、SQL Database、SQL Managed Instance、Azure Synapse にログインするための個々のアカウントです。
  • このログインには、サーバー レベルのプリンシパルとしての、すべてのデータベースに対する完全な管理アクセス許可が付与されます。 このログインは使用可能なすべてのアクセス許可を持ち、制限することはできません。 SQL Managed Instance では、このログインは sysadmin 固定サーバー ロールに追加されます (このロールは、Azure SQL Database には存在しません)。
  • このアカウントがデータベースにサインインすると、特殊なユーザー アカウント dbo と照合されます (ユーザー アカウント。これは各ユーザー データベースに存在します。 dbo ユーザーは、データベース内のすべてのデータベース アクセス許可を持ち、db_owner 固定データベース ロールのメンバーです。

論理サーバーのサーバー管理者アカウントを確認するには、Azure portal を開き、お使いのサーバーやマネージド インスタンスの [プロパティ] タブに移動します。

サーバー管理者アカウントの名前を作成後に変更することはできません。 サーバー管理者のパスワードをリセットするには、Azure portal にアクセスして [SQL Server] をクリックし、一覧からサーバーを選んで [パスワードのリセット] をクリックします。 SQL Managed Instance のパスワードをリセットするには、Azure portal にアクセスし、インスタンスをクリックして [パスワードのリセット] をクリックします。 PowerShell または Azure CLI を使用することもできます。