CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)

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

Соглашения о синтаксисе 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 или Azure Data Lake Storage с помощью общего ключа, имя удостоверения должно быть SHARED ACCESS SIGNATURE. Дополнительные сведения о подписанных URL-адресах см. в статье Использование подписанных URL-адресов. Используется IDENTITY = SHARED ACCESS SIGNATURE только для подписанного URL-адреса.
  • Чтобы импортировать файл из Хранилище BLOB-объектов Azure с помощью управляемого удостоверения, имя удостоверения должно быть MANAGED IDENTITY.
  • При использовании Kerberos (Windows Active Directory или MIT KDC) не указывайте доменное имя в аргументе IDENTITY. В этом аргументе должно быть только имя учетной записи.
  • В экземпляре SQL Server при создании учетных данных уровня базы данных с ключом доступа к хранилищу, используемым в качестве СЕКРЕТа, удостоверение игнорируется.
  • Инструкция WITH IDENTITY не требуется, если для контейнера в хранилище BLOB-объектов Azure включен анонимный доступ. См. пример запроса к хранилищу BLOB-объектов Azure в разделе Импорт данных в таблицу из файла, который находится в хранилище BLOB-объектов Azure.

Важно!

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

  • Чтобы загрузить данные в Azure Synapse Analytics, для identity можно использовать любое допустимое значение.
  • В бессерверном пуле SQL Azure Synapse Analytics учетные данные уровня базы данных могут указывать управляемое удостоверение рабочей области, имя субъекта-службы или маркер подписанного URL-адреса (SAS). Доступ также возможен через удостоверение пользователя, также известное как "Azure AD сквозной" возможен в учетных данных уровня базы данных, как и анонимный доступ к общедоступному хранилищу. Дополнительные сведения см. в разделе Поддерживаемые типы авторизации хранилища.
  • В выделенном пуле SQL Azure Synapse Analytics учетные данные уровня базы данных могут указывать маркер подписанного URL-адреса (SAS), пользовательское удостоверение приложения, управляемое удостоверение рабочей области или ключ доступа к хранилищу.

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, секретный код может быть паролем. Секретный код шифруется главным ключом службы. Если главный ключ службы формируется повторно, секретный код повторно шифруется, используя новый главный ключ службы.

При предоставлении разрешений для подписанных URL-адресов (SAS) для использования с внешней таблицей PolyBase выберите Контейнер и Объект в качестве допустимых типов ресурсов. Если этого не сделать, при попытке доступа к внешней таблице может возникнуть ошибка 16535 или 16561.

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

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

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

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

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

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

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

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

Разрешения

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

SQL Server 2022

Начиная с SQL Server 2022 г. (16.x) появился новый тип соединителя с использованием вызовов REST API, заменяющих HADOOP. Для Хранилище BLOB-объектов Azure и Azure Data Lake 2-го поколения поддерживается SHARED ACCESS SIGNATUREтолько метод проверки подлинности.

Дополнительные сведения см. в статье о создании внешнего источника данных .

Примеры

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 для проверки подлинности в службе. Прежде чем создавать учетные данные базы данных, создайте приложение Azure AD и задокументируйте client_id, OAuth_2.0_Token_EndPoint и Key.

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

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