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 |
認証の種類を示します。
SQL Azure には適用されません。 |
||||||||||
authentication_type_desc |
nvarchar(60) |
認証の種類の説明。
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)