sys.server_principals (Transact-SQL)

適用対象: はいSQL Server (サポートされているすべてのバージョン) はいAzure SQL Managed Instance はいParallel Data Warehouse

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

列名 データ型 説明
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 = Azure Active Directory からの外部ログイン

X = Azure Active Directory グループまたはアプリケーションからの外部グループ

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 または ROLE のメンバーシップが必要です。

カタログ ビューでのメタデータの表示が、ユーザーが所有しているかそのユーザーが権限を許可されている、セキュリティ保護可能なメタデータに制限されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。

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

重要

固定サーバーロール (public 以外) の権限は 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;  

参照

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