次の方法で共有


sys.server_principals (Transact-SQL)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Analytics Platform System (PDW)

サーバー レベルのプリンシパルごとに 1 行のデータを格納します。

Note

Microsoft Entra ID の、旧称は Azure Active Directory(Azure AD)です。

列名 データ型 説明
name sysname プリンシパルの名前。 サーバー内で一意です。
principal_id int プリンシパルの ID 番号。 サーバー内で一意です。
sid varbinary(85) プリンシパルのセキュリティ識別子 (SID)。
Windows プリンシパルの SID は、Windows SID と一致します。
Microsoft Entra ユーザー ID の SID は、Microsoft Entra オブジェクト ID のバイナリ表現です。
Microsoft Entra グループの SID は、Microsoft Entra オブジェクト ID のバイナリ表現です。
Microsoft Entra アプリケーションの SID は、Microsoft Entra クライアント ID のバイナリ表現です。
type char(1) プリンシパルの種類:

S = SQL ログイン
R = サーバー ロール

SQL Server、Azure SQL Managed Instance、PDW で使用できます (Azure SQL Database ではプレビュー段階):
E = Microsoft Entra ID からの外部ログインまたはアプリケーション
X = Microsoft Entra ID からの外部グループ

SQL Server、Azure SQL Managed Instance、PDW (Azure SQL Database ではなく) で使用できます。
U = Windows ログイン
G = Windows グループ
C = 証明書にマップされたログイン
K = 非対称キーにマップされたログイン
type_desc nvarchar(60) プリンシパルの種類の説明:

SQL_LOGIN
SERVER_ROLE

SQL Server、Azure SQL Managed Instance、PDW で使用できます (Azure SQL Database ではプレビュー段階):
EXTERNAL_LOGIN
EXTERNAL_GROUP

SQL Server、Azure SQL Managed Instance、PDW (Azure SQL Database ではなく) で使用できます。
WINDOWS_LOGIN
WINDOWS_GROUP
CERTIFICATE_MAPPED_LOGIN
ASYMMETRIC_KEY_MAPPED_LOGIN
is_disabled int 1 = ログインは無効です。
0 = ログインが有効です。
create_date datetime プリンシパルが作成された日時。
modify_date datetime プリンシパル定義が最後に変更された時刻。
default_database_name sysname プリンシパルの既定のデータベース。
default_language_name sysname プリンシパルの既定の言語。
credential_id int プリンシパルに関連付けられている資格情報の ID。 このプリンシパルに関連付けられている資格情報がない場合、credential_idは NULL です。
owning_principal_id int サーバー ロールの所有者の principal_id 。 プリンシパルがサーバー ロールでない場合は NULL。
is_fixed_role bit プリンシパルが固定アクセス許可を持つ組み込みのサーバー ロールの 1 つである場合は、1 を返します。 詳細については、「 サーバー レベルのロール」を参照してください。

アクセス許可

すべてのログインは自分のログイン名、システム ログイン、および固定サーバー ロールを参照できます。 他のログインを表示するには、ALTER ANY LOGIN またはログインに対するアクセス許可が必要です。 ユーザー定義サーバー ロールを表示するには、ALTER ANY SERVER ROLE、またはロールのメンバーシップが必要です。

Azure SQL Database では、次のプリンシパルのみがすべてのログインを表示できます。

  • サーバー ロールのメンバー ##MS_LoginManager## または特別なデータベース ロール loginmanagermaster
  • Microsoft Entra 管理者と SQL Server 管理者

カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。

次のクエリは、サーバー プリンシパルに対して明示的に許可または拒否されたアクセス許可を一覧表示します。

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pe.state_desc, pe.permission_name   
FROM sys.server_principals AS pr   
JOIN sys.server_permissions AS pe   
    ON pe.grantee_principal_id = pr.principal_id;  

重要

固定サーバー ロール (パブリック以外) のアクセス許可は、sys.server_permissionsには表示されません。 そのため、サーバー プリンシパルには、ここに記載されていない追加のアクセス許可がある場合があります。

セキュリティ カタログ ビュー (Transact-SQL)
カタログ ビュー (Transact-SQL)
プリンシパル (データベース エンジン)
権限の階層 (データベース エンジン)