CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

credential_name

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

IDENTITY ='identity_name'

Указывает имя учетной записи для использования при подключении за пределами сервера.

  • Чтобы импортировать файл из Хранилище BLOB-объектов Azure или Azure Data Lake служба хранилища с помощью общего ключа, имя удостоверения должно быть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). Доступ через удостоверение пользователя, включенный сквозной проверкой подлинности Microsoft Entra, также возможен с помощью учетных данных, область d базы данных, так как анонимный доступ к общедоступному хранилищу. Дополнительные сведения см. в разделе "Поддерживаемые типы авторизации хранилища".
  • В выделенном пуле SQL Azure Synapse Analytics база данных область учетные данные могут указывать маркер подписанного URL-адреса (SAS), пользовательский идентификатор приложения, управляемое удостоверение рабочей области или ключ доступа к хранилищу.

SECRET ='secret'

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

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

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

Замечания

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

Чтобы защитить конфиденциальную информацию в базе данных область d credential, требуется главный ключ базы данных (DMK). DMK — это симметричный ключ, который шифрует секрет в область учетных данных базы данных. База данных должна иметь главный ключ перед созданием всех учетных данных, область область. DmK должен быть зашифрован с помощью надежного пароля. База данных SQL Azure создаст главный ключ базы данных с сильным, случайным образом выбранным паролем в рамках создания учетных данных область базы данных или в рамках создания аудита сервера. Пользователи не могут создать главный ключ в логической master базе данных. Пароль главного ключа неизвестен корпорации Майкрософт и недоступен после создания. По этой причине рекомендуется создать главный ключ базы данных перед созданием учетных данных область базы данных. Дополнительные сведения см. в разделе 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.

  • Используйте область учетные данные базы данных с помощью PolyBase и функций виртуализации данных Управляемый экземпляр SQL Azure.

  • Для РЕЗЕРВНОГО КОПИРОВАНИЯ URL-адреса TO и RESTORE FROM URL-адреса используйте учетные данные на уровне сервера с помощью CREATE CREDENTIAL (Transact-SQL).

Разрешения

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

SQL Server 2022

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

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

Примеры

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

В следующем примере создаются учетные данные с именем 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>';

B. Создание учетных данных для базы данных для подписанного 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';

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

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

Azure Data Lake Store использует приложение Microsoft Entra для службы для проверки подлинности службы.

Создайте приложение Microsoft Entra и задокументируйте 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>'
;