CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)CREATE DATABASE SCOPED CREDENTIAL (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

データベースの資格情報を作成します。Creates a database credential. データベースの資格情報は、サーバー ログインまたはデータベース ユーザーにマップされません。A database credential is not mapped to a server login or database user. アクセスを必要とする操作がデータベースで実行されている場合はいつも、データベースでは資格情報を使用して外部の場所へのアクセスが行われます。The credential is used by the database to access to the external location anytime the database is performing an operation that requires access.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

CREATE DATABASE SCOPED CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
    [ , SECRET = 'secret' ]

引数Arguments

credential_name 作成するデータベース スコープの資格情報の名前を指定します。credential_name Specifies the name of the database scoped credential being created. credential_name はシャープ (#) 記号で始めることはできません。credential_name cannot start with the number (#) sign. システム資格情報は ## で始まります。System credentials start with ##.

IDENTITY =' identity_name ' サーバーの外部に接続するときに使用するアカウントの名前を指定します。IDENTITY ='identity_name' Specifies the name of the account to be used when connecting outside the server. 共有キーを使用して Azure Blob Storage からファイルをインポートするには、ID 名が SHARED ACCESS SIGNATURE である必要があります。To import a file from Azure Blob storage using share key, the identity name must be SHARED ACCESS SIGNATURE. データを SQL DW に読み込むには、任意の有効な値を ID に使用できます。To load data into SQL DW, any valid value can be used for identity. Shared Access Signature の詳細については、「Shared Access Signatures (SAS) の使用」をご覧ください。For more information about shared access signatures, see Using Shared Access Signatures (SAS).

SECRET =' secret ' 送信の認証に必要なシークレットを指定します。SECRET ='secret' Specifies the secret required for outgoing authentication. SECRET は、Azure Blob Storage からファイルをインポートするために必要です。SECRET is required to import a file from Azure Blob storage. Azure Blob Storage から SQL DW または Parallel Data Warehouse に読み込むには、シークレットが Azure Storage キーである必要があります。To load from Azure Blob storage into SQL DW or Parallel Data Warehouse, the Secret must be the Azure Storage Key.

警告

SAS キーの値は '?' (疑問符) で始まる可能性があります。The SAS key value might begin with a '?' (question mark). SAS キーを使用する場合は、先頭の '?' を削除する必要があります。When you use the SAS key, you must remove the leading '?'. そうしないと、作業がブロックされる可能性があります。Otherwise your efforts might be blocked.

RemarksRemarks

データベース スコープ資格情報は、SQL ServerSQL Server 外部のリソースへの接続に必要な認証情報を含むレコードです。A database scoped credential is a record that contains the authentication information that is required to connect to a resource outside SQL ServerSQL Server. 通常、資格情報には Windows ユーザーとパスワードが含まれます。Most credentials include a Windows user and password.

データベース スコープ資格情報を作成する前に、データベースに資格情報を保護するためのマスター キーが必要です。Before creating a database scoped credential, the database must have a master key to protect the credential. 詳細については、CREATE MASTER KEY (Transact-SQL)を参照してください。For more information, see CREATE MASTER KEY (Transact-SQL).

IDENTITY が Windows ユーザーの場合、このシークレットはパスワードにすることができます。When IDENTITY is a Windows user, the secret can be the password. シークレットはサービス マスター キーを使用して暗号化されます。The secret is encrypted using the service master key. サービス マスター キーが再生成された場合、シークレットは新しいサービス マスター キーを使用して再度暗号化されます。If the service master key is regenerated, the secret is re-encrypted using the new service master key.

データベース スコープの資格情報に関する情報は、sys.database_scoped_credentials カタログ ビューで確認できます。Information about database scoped credentials is visible in the sys.database_scoped_credentials catalog view.

ここでは、データベース スコープ資格情報のアプリケーションをいくつか示します。Here are some applications of database scoped credentials:

  • SQL ServerSQL Server は、PolyBase によるパブリック以外の Azure Blob Storage または Kerberos でセキュリティ保護された Hadoop クラスターへのアクセスにデータベース スコープ資格情報を使用します。uses a database scoped credential to access non-public Azure blob storage or Kerberos-secured Hadoop clusters with PolyBase. 詳しくは、「CREATE EXTERNAL DATA SOURCE (Transact-SQL)」をご覧ください。To learn more, see CREATE EXTERNAL DATA SOURCE (Transact-SQL).

  • SQL データ ウェアハウスSQL Data Warehouse は、PolyBase によるパブリック以外の Azure Blob Storage へのアクセスにデータベース スコープ資格情報を使用します。uses a database scoped credential to access non-public Azure blob storage with PolyBase. 詳しくは、「CREATE EXTERNAL DATA SOURCE (Transact-SQL)」をご覧ください。To learn more, see CREATE EXTERNAL DATA SOURCE (Transact-SQL).

  • SQL DatabaseSQL Database は、グローバル クエリ機能にデータベース スコープ資格情報を使用します。uses database scoped credentials for its global query feature. これは、複数のデータベース シャード間でクエリする機能です。This is the ability to query across multiple database shards.

  • SQL DatabaseSQL Database は、データベース スコープ資格情報を使用して、Azure Blob Storage に拡張イベント ファイルを書き込みます。uses database scoped credentials to write extended event files to Azure blob storage.

  • SQL DatabaseSQL Database は、エラスティック プールにデータベース スコープ資格情報を使用します。uses database scoped credentials for elastic pools. 詳しくは、エラスティック データベースでの急増の緩和に関する記事をご覧くださいFor more information, see Tame explosive growth with elastic databases

  • BULK INSERTOPENROWSET は、データベース スコープ資格情報を使用して Azure Blob Storage からデータにアクセスします。BULK INSERT and OPENROWSET use database scoped credentials to access data from Azure blob storage. 詳しくは、「Azure BLOB ストレージのデータに一括アクセスする例」をご覧ください。For more information, see Examples of Bulk Access to Data in Azure Blob Storage.

アクセス許可Permissions

データベースに対する CONTROL 権限が必要です。Requires CONTROL permission on the database.

使用例Examples

A.A. アプリケーションのデータベース スコープ資格情報の作成Creating a database scoped credential for your application

次の例では、AppCred というデータベース スコープ資格情報を作成します。The following example creates the database scoped credential called AppCred. データベース スコープ資格情報には Windows ユーザー Mary5 とパスワードが含まれます。The database scoped credential contains the Windows user Mary5 and a password.

-- Create a db master key if one does not already exist, using your own password.
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';

-- Create a database scoped credential.
CREATE DATABASE SCOPED CREDENTIAL AppCred WITH IDENTITY = 'Mary5',
    SECRET = '<EnterStrongPasswordHere>';

B.B. Shared Access Signature のデータベース スコープ資格情報の作成Creating a database scoped credential for a shared access signature

次の例では、BULK INSERTOPENROWSET など、一括操作できる外部データ ソースの作成に使用できるデータベース スコープ資格情報を作成します。The following example creates a database scoped credential that can be used to create an external data source, which can do bulk operations, such as BULK INSERT and OPENROWSET. Shared Access Signatures は、SQL Server、APS、または SQL DW では PolyBase と共に使用できません。Shared Access Signatures cannot be used with PolyBase in SQL Server, APS or SQL DW.

-- Create a db master key if one does not already exist, using your own password.
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';

-- Create a database scoped credential.CREATE DATABASE SCOPED CREDENTIAL MyCredentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'QLYMgmSXMklt%2FI1U6DcVrQixnlU5Sgbtk1qDRakUBGs%3D';

C.C. Azure Data Lake Store に PolyBase で接続するためのデータベース スコープ資格情報の作成Creating a database scoped credential for PolyBase Connectivity to Azure Data Lake Store

次の例では、Azure SQL Data Warehouse で PolyBase によって使用できる外部データ ソースの作成に使用できるデータベース スコープ資格情報を作成します。The following example creates a database scoped credential that can be used to create an external data source, which can be used by PolyBase in Azure SQL Data Warehouse.

Azure Data Lake Store は、Azure Active Directory アプリケーションをサービス間認証に使用します。Azure Data Lake Store uses an Azure Active Directory Application for Service to Service Authentication. データベース スコープ資格情報を作成する前に、AAD アプリケーションを作成し、client_id、OAuth_2.0_Token_EndPoint、キーを文書化してください。Please create an AAD application and document your client_id, OAuth_2.0_Token_EndPoint, and Key before you try to create a database scoped credential.

-- Create a db master key if one does not already exist, using your own password.
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';

-- Create a database scoped credential.CREATE DATABASE SCOPED CREDENTIAL ADL_User
WITH
    IDENTITY = '<client_id>@\<OAuth_2.0_Token_EndPoint>'
    SECRET = '<key>'
;

詳細情報More information