CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии) ДаБаза данных SQL Azure ДаУправляемый экземпляр SQL Azure даAzure Synapse Analytics даПараллельное хранилище данных

Создает учетные данные для базы данных. Учетные данные базы данных не сопоставляются с именем входа сервера или пользователем базы данных. База данных использует эти учетные данные для доступа к внешнему расположению каждый раз при выполнении операции, требующей доступа.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

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

Примечание

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

credential_name Указывает имя создаваемых учетных данных для базы данных. Аргумент credential_name не может начинаться с символа номера (#). Системные учетные данные начинаются с символов ##.

IDENTITY =' identity_name ' . Указывает имя учетной записи для использования при подключении за пределами сервера. Чтобы импортировать файл из хранилища BLOB-объектов Azure с использованием общего ключа, имя удостоверения должно быть SHARED ACCESS SIGNATURE. Для загрузки данных в Azure Synapse Analytics в качестве удостоверения можно использовать любое допустимое значение. Дополнительные сведения о подписанных URL-адресах см. в статье Использование подписанных URL-адресов. При использовании Kerberos (Windows Active Directory или MIT KDC) не указывайте доменное имя в аргументе IDENTITY. В этом аргументе должно быть только имя учетной записи.

Важно!

Единственный внешний источник данных PolyBase, поддерживающий проверку подлинности Kerberos, — Hadoop. Все другие внешние источники данных (SQL Server, Oracle, Teradata, MongoDB, универсальный ODBC) поддерживают только обычную проверку подлинности.

Примечание

Инструкция WITH IDENTITY не требуется, если для контейнера в хранилище BLOB-объектов Azure включен анонимный доступ. См. пример запроса к хранилищу BLOB-объектов Azure в разделе Импорт данных в таблицу из файла, который находится в хранилище BLOB-объектов Azure.

SECRET =' secret ' . Указывает секретный код, необходимый для исходящей проверки подлинности. SECRET требуется для импорта файла из хранилища больших двоичных объектов Azure. Для загрузки из хранилища BLOB-объектов Azure в Azure Synapse Analytics или Parallel Data Warehouse в качестве секретного ключа необходимо использовать ключ хранилища Azure.

Предупреждение

Значение ключа SAS может начинаться с '?' (вопросительный знак). При использовании ключа SAS необходимо удалить начальный символ '?'. В противном случае действия могут быть заблокированы.

Remarks

Учетные данные для базы данных являются записью, которая содержит сведения для проверки подлинности, необходимые для подключения к ресурсу извне SQL Server. Большинство учетных данных включают имя пользователя и пароль Windows.

Перед созданием учетных данных для базы данных в базе данных должен находиться главный ключ для защиты учетных данных. Дополнительные сведения см. в разделе CREATE MASTER KEY (Transact-SQL).

Если IDENTITY является пользователем Windows, секретный код может быть паролем. Секретный код шифруется главным ключом службы. Если главный ключ службы формируется повторно, секретный код повторно шифруется, используя новый главный ключ службы.

Дополнительные сведения об учетных данных для базы данных см. в представлении каталога sys.database_scoped_credentials.

Далее приводятся некоторые варианты использования учетных данных для базы данных.

  • SQL Server использует учетные данные для базы данных для доступа к не являющемуся открытым хранилищу больших двоичных объектов или к кластерам Hadoop с PolyBase, защищенным Kerberos. Дополнительные сведения см. в разделе CREATE EXTERNAL DATA SOURCE (Transact-SQL).

  • Azure Synapse Analytics использует учетные данные для базы данных для доступа к не являющемуся открытым хранилищу больших двоичных объектов Azure с PolyBase. Дополнительные сведения см. в разделе CREATE EXTERNAL DATA SOURCE (Transact-SQL).

  • База данных SQL использует учетные данные для базы данных для своего компонента глобального запроса. Это возможность выполнять запросы к нескольким сегментам базы данных.

  • База данных SQL использует учетные данные для базы данных для записи файлов расширенных событий в хранилище BLOB-объектов Azure.

  • База данных SQL использует учетные данные для базы данных для эластичных пулов. Дополнительные сведения см. в статье о решении проблем с бурным ростом эластичных баз данных.

  • BULK INSERT и OPENROWSET используют учетные данные для базы данных для доступа к данным из хранилища BLOB-объектов Azure. Дополнительные сведения см. в разделе Примеры массового доступа к данным в хранилище BLOB-объектов Azure.

Разрешения

Требуется разрешение CONTROL для базы данных.

Примеры

A. Создание учетных данных для базы данных для вашего приложения

В следующем примере создаются учетные данные с именем AppCred для базы данных. В эти учетные данные для базы данных входят имя пользователя Windows Mary5 и пароль.

-- 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>';

Б. Создание учетных данных для базы данных для подписанного URL-адреса

В следующем примере создаются учетные данные для базы данных, которые можно использовать для создания внешнего источника данных, выполняющего массовые операции, такие как BULK INSERT и OPENROWSET. Подписанные URL-адреса нельзя использовать с PolyBase в SQL Server, APS или Azure Synapse Analytics.

-- 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';

В. Создание учетных данных для базы данных для подключения PolyBase к Azure Data Lake Store

В следующем примере создаются учетные данные для базы данных, которые можно использовать для создания внешнего источника данных, используемого PolyBase в Azure Synapse Analytics.

Azure Data Lake Store использует приложение Azure Active Directory для проверки подлинности в службе. Создайте приложение AAD и задокументируйте client_id, OAuth_2.0_Token_EndPoint и ключ, прежде чем создавать учетные данные для базы данных.

-- 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>'
;

Дополнительные сведения