database_principals (Transact-sql)sys.database_principals (Transact-SQL)

適用対象: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

SQL ServerSQL Server データベース内のセキュリティプリンシパルごとに1行のデータを返します。Returns a row for each security principal in a SQL ServerSQL Server database.

列名Column name データ型Data type [説明]Description
namename sysnamesysname プリンシパルの名前。データベース内で一意です。Name of principal, unique within the database.
principal_idprincipal_id intint プリンシパルの ID。データベース内で一意です。ID of principal, unique within the database.
type char(1)char(1) プリンシパルの種類:Principal type:

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

C = 証明書にマップされたユーザーC = User mapped to a certificate

E = Azure Active Directory の外部ユーザーE = External user from Azure Active Directory

G = Windows グループG = Windows group

K = 非対称キーにマップされたユーザーK = User mapped to an asymmetric key

R = データベース ロールR = Database role

S = SQL ユーザーS = SQL user

U = Windows ユーザーU = Windows user

X = Azure Active Directory グループまたはアプリケーションからの外部グループX = External group from Azure Active Directory group or applications
type_desctype_desc nvarchar(60)nvarchar(60) プリンシパルの種類の説明。Description of principal type.

APPLICATION_ROLEAPPLICATION_ROLE

CERTIFICATE_MAPPED_USERCERTIFICATE_MAPPED_USER

EXTERNAL_USEREXTERNAL_USER

WINDOWS_GROUPWINDOWS_GROUP

ASYMMETRIC_KEY_MAPPED_USERASYMMETRIC_KEY_MAPPED_USER

DATABASE_ROLEDATABASE_ROLE

SQL_USERSQL_USER

WINDOWS_USERWINDOWS_USER

EXTERNAL_GROUPSEXTERNAL_GROUPS
default_schema_namedefault_schema_name sysnamesysname SQL 名でスキーマが指定されていない場合に使用される名前です。Name to be used when SQL name does not specify a schema. 型が S、U、またはでないプリンシパルの場合は Null です。Null for principals not of type S, U, or A.
create_datecreate_date datetimedatetime プリンシパルが作成された日時。Time at which the principal was created.
modify_datemodify_date datetimedatetime プリンシパルが最後に変更された時刻。Time at which the principal was last modified.
owning_principal_idowning_principal_id intint このプリンシパルを所有するプリンシパルの ID。ID of the principal that owns this principal. データベースロール以外のすべてのプリンシパルは、 dboによって所有されている必要があります。All principals except Database Roles must be owned by dbo.
sidsid varbinary(85)varbinary(85) プリンシパルの SID (セキュリティ識別子)。SID (Security Identifier) of the principal. SYS および INFORMATION スキーマの場合は NULL です。NULL for SYS and INFORMATION SCHEMAS.
is_fixed_roleis_fixed_role bitbit 1の場合、この行は固定データベースロールの1つのエントリ (db_owner、db_accessadmin、db_datareader、db_datawriter、db_ddladmin、db_securityadmin、db_backupoperator、db_denydatareader、db_denydatawriter) を表します。If 1, this row represents an entry for one of the fixed database roles: db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin, db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter.
authentication_typeauthentication_type intint 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降。Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

認証の種類を示します。Signifies authentication type. 使用可能な値とその説明を次に示します。The following are the possible values and their descriptions.

0: 認証なし0 : No authentication
1: インスタンス認証1 : Instance authentication
2: データベース認証2 : Database authentication
3: Windows 認証3 : Windows Authentication
authentication_type_descauthentication_type_desc nvarchar(60)nvarchar(60) 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降。Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

認証の種類の説明。Description of the authentication type. 使用可能な値とその説明を次に示します。The following are the possible values and their descriptions.

なし: 認証なしNONE : No authentication
インスタンス: インスタンス認証INSTANCE : Instance authentication
データベース: データベース認証DATABASE : Database authentication
WINDOWS: Windows 認証WINDOWS : Windows Authentication
default_language_namedefault_language_name sysnamesysname 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降。Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

このプリンシパルの既定の言語を示します。Signifies the default language for this principal.
default_language_lciddefault_language_lcid intint 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降。Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

このプリンシパルの既定の LCID を示します。Signifies the default LCID for this principal.
allow_encrypted_value_modificationsallow_encrypted_value_modifications bitbit 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降、SQL DatabaseSQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later, SQL DatabaseSQL Database.

一括コピー操作でのサーバーの暗号化メタデータ チェックを抑制します。Suppresses cryptographic metadata checks on the server in bulk copy operations. これにより、データの暗号化を解除することなく、テーブルまたはデータベース間で Always Encrypted を使用して暗号化されたデータを一括コピーできます。This enables the user to bulk copy data encrypted using Always Encrypted, between tables or databases, without decrypting the data. 既定値は OFF です。The default is OFF.

RemarksRemarks

PasswordLastSetTimeプロパティは、SQL Server のサポートされているすべての構成で使用できますが、その他のプロパティは SQL Server が Windows Server 2003 以降で実行されており、CHECK_POLICY と CHECK_EXPIRATION の両方が有効になっている場合にのみ使用できます。The PasswordLastSetTime properties are available on all supported configurations of SQL Server, but the other properties are only available when SQL Server is running on Windows Server 2003 or later and both CHECK_POLICY and CHECK_EXPIRATION are enabled. 詳細については、「パスワードポリシー 」を参照してください。See Password Policy for more information.

アクセス許可Permissions

すべてのユーザーは自分のユーザー名、システム ユーザー、および固定データベース ロールを参照できます。Any user can see their own user name, the system users, and the fixed database roles. 他のユーザーを参照するには、ALTER ANY USER、またはユーザーに対する権限が必要です。To see other users, requires ALTER ANY USER, or a permission on the user. ユーザー定義ロールを参照するには、ALTER ANY ROLE、またはロールのメンバーシップが必要です。To see user-defined roles, requires ALTER ANY ROLE, or membership in the role.

使用例Examples

A: データベース プリンシパルのすべての権限を一覧表示するA: Listing all the permissions of database principals

次のクエリは、データベースプリンシパルに対して明示的に許可または拒否されている権限を一覧表示します。The following query lists the permissions explicitly granted or denied to database principals.

重要

固定データベースロールの権限は、sys. database_permissions には表示されません。The permissions of fixed database roles do not appear in sys.database_permissions. そのため、データベースプリンシパルには、ここに記載されていない追加のアクセス許可がある場合があります。Therefore, database principals may have additional permissions not listed here.

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: データベース内のスキーマオブジェクトに対する権限を一覧表示するB: Listing permissions on schema objects within a database

次のクエリでは、sys. database_principals と sys. database_permissions を、特定のスキーマオブジェクトに対して許可または拒否されている権限を一覧表示するために、sys. オブジェクトと sys スキーマに結合します。The following query joins sys.database_principals and sys.database_permissions to sys.objects and sys.schemas to list permissions granted or denied to specific schema objects.

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;  

例: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) および Parallel Data WarehouseParallel Data WarehouseExamples: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) and Parallel Data WarehouseParallel Data Warehouse

C: データベースプリンシパルのすべてのアクセス許可を一覧表示するC: Listing all the permissions of database principals

次のクエリは、データベースプリンシパルに対して明示的に許可または拒否されている権限を一覧表示します。The following query lists the permissions explicitly granted or denied to database principals.

重要

固定データベースロールの権限は、sys.database_permissionsには表示されません。The permissions of fixed database roles do not appear in sys.database_permissions. そのため、データベースプリンシパルには、ここに記載されていない追加のアクセス許可がある場合があります。Therefore, database principals may have additional permissions not listed here.

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;  

D: データベース内のスキーマオブジェクトに対する権限を一覧表示するD: Listing permissions on schema objects within a database

次のクエリは、sys.database_principalssys.database_permissionssys.objects および sys.schemas に結合して、特定のスキーマオブジェクトに対して許可または拒否されている権限を一覧表示します。The following query joins sys.database_principals and sys.database_permissions to sys.objects and sys.schemas to list permissions granted or denied to specific schema objects.

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;  

参照See Also

プリンシパル (データベース エンジン) Principals (Database Engine)
sys.server_principals (Transact-SQL) sys.server_principals (Transact-SQL)
セキュリティ カタログ ビュー (Transact-SQL) Security Catalog Views (Transact-SQL)
包含データベースユーザー-データベースの移植性を Contained Database Users - Making Your Database Portable
Azure Active Directory 認証を使用して SQL Database に接続するConnecting to SQL Database By Using Azure Active Directory Authentication