sys.database_principals (Transact-SQL)

データベース内のセキュリティ プリンシパルごとに 1 行のデータを返します。

列名

データ型

説明

name

sysname

プリンシパルの名前。データベース内で一意です。

principal_id

int

プリンシパルの ID。データベース内で一意です。

char(1)

プリンシパルの種類。

S = SQL ユーザー

U = Windows ユーザー

G = Windows グループ

A = アプリケーション ロール

R = データベース ロール

C = 証明書にマップされているユーザー

K = 非対称キーにマップされているユーザー

type_desc

nvarchar(60)

プリンシパルの種類の説明。

SQL_USER

WINDOWS_USER

WINDOWS_GROUP

APPLICATION_ROLE

DATABASE_ROLE

CERTIFICATE_MAPPED_USER

ASYMMETRIC_KEY_MAPPED_USER

default_schema_name

sysname

SQL 名でスキーマが指定されなかったときに使用される名前。 種類が S、U、A 以外のプリンシパルの場合は Null になります。

create_date

datetime

プリンシパルが作成された時刻。

modify_date

datetime

プリンシパルが変更された時刻。

owning_principal_id

int

このプリンシパルを所有するプリンシパルの ID。 データベース ロール以外のすべてのプリンシパルは、dbo が所有する必要があります。

sid

varbinary(85)

プリンシパルの SID (セキュリティ識別子)。 SYS および INFORMATION SCHEMAS の場合は NULL になります。

is_fixed_role

bit

1 の場合は、固定データベース ロール db_owner、db_accessadmin、db_datareader、db_datawriter、db_ddladmin、db_securityadmin、db_backupoperator、db_denydatareader、db_denydatawriter のいずれかのエントリを表します。

authentication_type

int

認証の種類を示します。

説明

0

認証なし

1

インスタンス認証

2

データベース認証

3

Windows 認証

SQL Azure には適用されません。

authentication_type_desc

nvarchar(60)

認証の種類の説明。

説明

NONE

認証なし

INSTANCE

インスタンス認証

DATABASE

データベース認証

WINDOWS

Windows 認証

SQL Azure には適用されません。

default_language_name

sysname

このプリンシパルの既定の言語を示します。

SQL Azure には適用されません。

default_language_lcid

int

このプリンシパルの既定の LCID を示します。

SQL Azure には適用されません。

説明

PasswordLastSetTime プロパティは、SQL Server のサポート対象の全構成で使用できますが、その他のプロパティは、SQL Server が Windows Server 2003 で実行され、CHECK_POLICY と CHECK_EXPIRATION の両方が有効な場合にのみ使用できます。 詳細については、「パスワード ポリシー」を参照してください。

権限

すべてのユーザーは自分のユーザー名、システム ユーザー、および固定データベース ロールを参照できます。 他のユーザーを参照するには、ALTER ANY USER、またはユーザーに対する権限が必要です。 ユーザー定義ロールを参照するには、ALTER ANY ROLE、またはロールのメンバーシップが必要です。

使用例

A: データベース プリンシパルのすべての権限を一覧表示する

次のクエリは、データベース プリンシパルに対して明示的に付与または拒否されている権限を一覧表示します。

重要な注意事項重要

固定データベース ロールの権限は、sys.database_permissions には表示されません。 したがって、データベース プリンシパルには、ここに一覧表示されていない追加の権限がある可能性があります。

SELECT pr.principal_id, pr.name, pr.type_desc, 
    pr.authentication_type_desc, pe.state_desc, pe.permission_name
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
    ON pe.grantee_principal_id = pr.principal_id;

B: データベース内のスキーマ オブジェクト上の権限を一覧表示する

次のクエリは、sys.database_principals と sys.database_permissions を sys.objects と sys.schemas に結合して、特定のスキーマ オブジェクトに対して付与または拒否されている権限を一覧表示します。

SELECT pr.principal_id, pr.name, pr.type_desc, 
    pr.authentication_type_desc, pe.state_desc, 
    pe.permission_name, s.name + '.' + o.name AS ObjectName
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS pe
    ON pe.grantee_principal_id = pr.principal_id
JOIN sys.objects AS o
    ON pe.major_id = o.object_id
JOIN sys.schemas AS s
    ON o.schema_id = s.schema_id;

関連項目

参照

カタログ ビュー (Transact-SQL)

セキュリティ カタログ ビュー (Transact-SQL)

概念

プリンシパル (データベース エンジン)