CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data WarehouseПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel 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-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

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

Примечание

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

Аргументы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. Чтобы импортировать файл из хранилища BLOB-объектов Azure с использованием общего ключа, имя удостоверения должно быть SHARED ACCESS SIGNATURE.To import a file from Azure Blob storage using a shared key, the identity name must be SHARED ACCESS SIGNATURE. Для загрузки данных в хранилище данных SQL в качестве удостоверения можно использовать любое допустимое значение.To load data into SQL DW, any valid value can be used for identity. Дополнительные сведения о подписанных URL-адресах см. в статье Использование подписанных URL-адресов.For more information about shared access signatures, see Using Shared Access Signatures (SAS). При использовании Kerberos (Windows Active Directory или MIT KDC) не указывайте доменное имя в аргументе IDENTITY.When using Kerberos (Windows Active Directory or MIT KDC) do not use the domain name in the IDENTITY arguement. В этом аргументе должно быть только имя учетной записи.It should just be the account name.

Примечание

Инструкция WITH IDENTITY не требуется, если для контейнера в хранилище BLOB-объектов Azure включен анонимный доступ.WITH IDENTITY is not required if the container in Azure Blob storage is enabled for anonymous access. См. пример запроса к хранилищу BLOB-объектов Azure в разделе Импорт данных в таблицу из файла, который находится в хранилище BLOB-объектов Azure.For an example querying Azure Blob storage, see Importing into a table from a file stored on Azure Blob storage.

SECRET =' secret ' . Указывает секретный код, необходимый для исходящей проверки подлинности.SECRET ='secret' Specifies the secret required for outgoing authentication. SECRET требуется для импорта файла из хранилища больших двоичных объектов Azure.SECRET is required to import a file from Azure Blob storage. Для загрузки из хранилища BLOB-объектов Azure в хранилище данных SQL или Parallel Data Warehouse в качестве секретного ключа необходимо использовать ключ хранилища Azure.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 использует учетные данные для базы данных для доступа к не являющемуся открытым хранилищу больших двоичных объектов или к кластерам Hadoop с PolyBase, защищенным Kerberos.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).

  • Azure Synapse Analytics (Хранилище данных SQL)Azure Synapse Analytics (SQL Data Warehouse) использует учетные данные для базы данных для доступа к не являющемуся открытым хранилищу больших двоичных объектов Azure с PolyBase.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).

  • База данных SQLSQL Database использует учетные данные для базы данных для своего компонента глобального запроса.uses database scoped credentials for its global query feature. Это возможность выполнять запросы к нескольким сегментам базы данных.This is the ability to query across multiple database shards.

  • База данных SQLSQL Database использует учетные данные для базы данных для записи файлов расширенных событий в хранилище BLOB-объектов Azure.uses database scoped credentials to write extended event files to Azure blob storage.

  • База данных SQLSQL Database использует учетные данные для базы данных для эластичных пулов.uses database scoped credentials for elastic pools. Дополнительные сведения см. в статье о решении проблем с бурным ростом эластичных баз данных.For more information, see Tame explosive growth with elastic databases

  • BULK INSERT и OPENROWSET используют учетные данные для базы данных для доступа к данным из хранилища BLOB-объектов Azure.BULK INSERT and OPENROWSET use database scoped credentials to access data from Azure blob storage. Дополнительные сведения см. в разделе Примеры массового доступа к данным в хранилище BLOB-объектов Azure.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. Создание учетных данных для базы данных для подписанного URL-адресаCreating a database scoped credential for a shared access signature

В следующем примере создаются учетные данные для базы данных, которые можно использовать для создания внешнего источника данных, выполняющего массовые операции, такие как BULK INSERT и OPENROWSET.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. Подписанные URL-адреса нельзя использовать с PolyBase в SQL Server, APS или хранилищем данных SQL.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. Создание учетных данных для базы данных для подключения PolyBase к Azure Data Lake StoreCreating a database scoped credential for PolyBase Connectivity to Azure Data Lake Store

В следующем примере создаются учетные данные для базы данных, которые можно использовать для создания внешнего источника данных, используемого PolyBase в Azure Synapse Analytics (Хранилище данных SQL)Azure Synapse Analytics (SQL Data Warehouse).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 Synapse Analytics (Хранилище данных SQL)Azure Synapse Analytics (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