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 プリンシパルの場合、これは Windows SID に一致します。 |
type | char(1) | プリンシパルの種類: S = SQL ログイン U = Windows ログイン G = Windows グループ R = サーバー ロール C = 証明書にマップされたログイン E = Microsoft Entra ID からの外部ログイン X = Microsoft Entra グループまたはアプリケーションの外部グループ K = 非対称キーにマップされたログイン |
type_desc | nvarchar(60) | プリンシパルの種類の説明: SQL_LOGIN WINDOWS_LOGIN WINDOWS_GROUP SERVER_ROLE CERTIFICATE_MAPPED_LOGIN EXTERNAL_LOGIN EXTERNAL_GROUP ASYMMETRIC_KEY_MAPPED_LOGIN |
is_disabled | int | 1 = ログインは無効です。 |
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## または特別なデータベース ロール loginmanager
master
- Microsoft Entra 管理者と SQL Server 管理者
カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。
例
次のクエリは、サーバー プリンシパルに対して明示的に許可または拒否されたアクセス許可を一覧表示します。
重要
固定サーバー ロール (パブリック以外) のアクセス許可は、sys.server_permissionsには表示されません。 そのため、サーバー プリンシパルには、ここに記載されていない追加のアクセス許可がある場合があります。
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;
Note
固定サーバー ロールの権限は、sys.server_permissions には表示されません。
関連項目
セキュリティ カタログ ビュー (Transact-SQL)
カタログ ビュー (Transact-SQL)
プリンシパル (データベース エンジン)
権限の階層 (データベース エンジン)