対象者:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
アナリティクスプラットフォームシステム(PDW)
Microsoft FabricにおけるSQLデータベース
プリンシパルは、SQL Server リソースを要求できるエンティティです。 SQL Server の承認モデルの他のコンポーネントと同様に、プリンシパルは階層内に配置できます。 プリンシパルの効力のスコープは、プリンシパルの定義のスコープ (Windows、サーバー、データベース) と、プリンシパルが分割できないアイテムであるかコレクションであるかによって異なります。 分割できないプリンシパルの例には Windows ログインがあり、コレクションであるプリンシパルの例には Windows グループがあります。 すべてのプリンシパルにはセキュリティ識別子 (SID) があります。 このトピックは、すべてのバージョンの SQL Server に適用されますが、SQL Database または Azure Synapse Analytics ではサーバー レベルのプリンシパルでいくつかの制約があります。
Note
Microsoft Entra ID は以前に Azure Active Directory(Azure AD)として知られていました。
SQL Server レベルのプリンシパル
- SQL Server 認証ログイン
- Windows ユーザーの Windows 認証ログイン
- Windows グループの Windows 認証ログイン
- Microsoft Entra ユーザーの Microsoft Entra 認証ログイン
- Microsoft Entra グループの Microsoft Entra 認証ログイン
- Microsoft Entra サービス プリンシパルの Microsoft Entra 認証ログイン
- サーバーの役割
データベース レベルの主体
- データベース ユーザー (データベース ユーザーの種類の詳細については、「 CREATE USER (Transact-SQL)」を参照してください)。
- データベース ロール
- アプリケーション ロール
sa ログイン
SQL Server sa ログインは、サーバー レベルの原則です。 既定では、インスタンスのインストール時に作成されます。 SQL Server 2005 (9.x) 以降では、 sa の既定のデータベースは master。 これは、以前のバージョンの SQL Serverの動作から変更されています。
sa ログインは sysadmin 固定サーバーレベル ロールに属します。
sa ログインにはサーバーに対するすべてのアクセス許可があり、制限することはできません。
saログインは削除できませんが、誰も使用できないように無効にすることができます。
dbo ユーザースキーマと dbo スキーマ
dbo ユーザーは、各データベースの特別なユーザー プリンシパルです。 すべての SQL Server 管理者、sysadmin 固定サーバー ロールのメンバー、sa ログイン、データベースの所有者は dbo ユーザーとしてデータベースに入ります。
dbo ユーザーはデータベース内のすべてのアクセス許可を持っており、制限または削除することはできません。
dbo はデータベース所有者を表しますが、 dbo ユーザー アカウントは db_owner 固定データベース ロールと同じではなく、固定データベース ロール db_owner は、データベースの所有者として記録されるユーザー アカウントと同じではありません。
dbo ユーザーは dbo スキーマを所有します。
dbo スキーマは、その他のスキーマが指定されていない限り、すべてのユーザーの既定のスキーマとなります。
dbo スキーマを削除できません。
public サーバー ロールとデータベース ロール
すべてのログインは public 固定サーバー ロールに属します。すべてのデータベース ユーザーは public データベース ロールに属します。 ログインまたはユーザーがセキュリティ保護可能なリソースに対する特定のアクセス許可を付与または拒否されていない場合、ログインまたはユーザーは、そのセキュリティ保護可能なリソースに対する public に付与されたアクセス許可を継承します。
public固定サーバー ロールとpublic固定データベース ロールは削除できません。 ただし、public ロールからアクセス許可を取り消すことができます。 既定で public ロールにはさまざまなアクセス許可が割り当てられています。 そのようなアクセス許可のほとんどはデータベースの日常的操作、つまり、誰にでも許可されなければならない類いの操作に必要となります。
public ログインまたはユーザーからアクセス許可を取り消す場合は、すべてのログイン/ユーザーに影響を与えるので注意してください。 通常、publicへのアクセス許可を拒否しないでください。なぜなら、deny ステートメントは、個人に対して行う可能性のある許可ステートメントをオーバーライドしてしまうからです。
INFORMATION_SCHEMAユーザーとスキーマsys
各データベースには、カタログ ビューにユーザーとして表示される 2 つのエンティティ INFORMATION_SCHEMA および sys が含まれています。 データベース エンジンによる内部利用でこれらのエンティティが必要になります。 変更または削除することはできません。
証明書ベースの SQL Server ログイン
名前が 2 つの番号記号 (##) で囲まれたサーバー プリンシパルは、内部システムでのみ使用されます。 次のプリンシパルは、SQL Server のインストール時に証明書から作成され、削除しないでください。
- ##MS_SQLResourceSigningCertificate##
- ##MS_SQLReplicationSigningCertificate##
- ##MS_SQLAuthenticatorCertificate##
- ##MS_AgentSigningCertificate##
- ##MS_PolicyEventProcessingLogin##
- ##MS_PolicySigningCertificate##
- ##MS_PolicyTsqlExecutionLogin##
これらのプリンシパル アカウントには、Microsoft に発行された証明書に基づいているため、管理者が変更できるパスワードはありません。
guest ユーザー
各データベースには、 guestの動作から変更されています。
guest ユーザーに付与されたアクセス許可は、データベースにアクセスできるが、データベースにユーザー アカウントを持たないユーザーによって継承されます。
guest ユーザーは削除できませんが、CONNECTアクセス許可を取り消すことで無効にできます。
CONNECT権限は、REVOKE CONNECT FROM GUEST;またはmaster以外の任意のデータベース内でtempdbを実行することによって取り消すことができます。
Limitations
- Microsoft Fabric の SQL データベースでは、データベース レベルのユーザーとロールのみがサポートされます。 サーバー レベルのログイン、ロール、sa アカウントは使用できません。 Microsoft Fabric の SQL データベースでは、データベース ユーザーの Microsoft Entra ID のみがサポートされている認証方法です。 詳細については、「 Microsoft Fabric の SQL データベースでの認証」を参照してください。
関連タスク
アクセス許可システムの設計の詳細については、「アクセス許可の使用を開始するデータベース エンジンを参照してください。
SQL Server オンライン ブックのこのセクションには、次の記事が含まれています。