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

適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

それぞれのセキュリティの行でプリンシパルを返します、SQL ServerSQL Serverデータベース。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.
typetype 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、または A. の場合は nullNull 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 SCHEMAS の場合は NULL です。NULL for SYS and INFORMATION SCHEMAS.
is_fixed_roleis_fixed_role bitbit 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) から SQL Server 2017SQL Server 2017Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

認証の種類を示します。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) から SQL Server 2017SQL Server 2017Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

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

NONE:認証なし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) から SQL Server 2017SQL Server 2017Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

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

このプリンシパルの既定の 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 Server 2017SQL Server 2017SQL DatabaseSQL DatabaseApplies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017, 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.

コメントRemarks

PasswordLastSetTimeプロパティは、SQL Server のサポートされているすべての構成で使用できますが、その他のプロパティは SQL Server が Windows Server 2003 またはそれ以降、CHECK_POLICY と CHECK_ の両方で実行されている場合にのみ使用できます有効期限が有効にします。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.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;  

例: Azure SQL データ ウェアハウスAzure SQL Data Warehouse および Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL データ ウェアハウスAzure SQL Data Warehouse 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.objectssys.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 データベースに接続します。Connecting to SQL Database By Using Azure Active Directory Authentication