Поделиться через


СОЗДАТЬ УЧЕТНЫЕ ДАННЫЕ БАЗЫ ДАННЫХ (Transact-SQL)

Относится к:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsАналитическая платформа (PDW)SQL база данных в Microsoft Fabric

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

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

Syntax

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

Arguments

credential_name

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

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 при создании учетных данных с областью действия базы данных с ключом доступа к хранилищу, используемым в качестве ключа SECRET, IDENTITY игнорируется.
  • WITH IDENTITY Не требуется, если контейнер в хранилище BLOB-объектов Azure включен для анонимного доступа. Пример запроса к хранилищу OPENROWSET BULKBLOB-объектов Azure см. в статье "Импорт в таблицу" из файла, хранящегося в хранилище BLOB-объектов Azure.
  • В SQL Server 2022 (16.x) и более поздних версиях соединитель REST-API заменяет HADOOP. Для хранилища BLOB-объектов Azure и Azure Data Lake 2-го поколения единственным поддерживаемым методом проверки подлинности является подписанный URL-адрес. Дополнительные сведения см. в статье CREATE EXTERNAL DATA SOURCE (Transact-SQL).
  • В SQL Server 2019 (15.x) единственный внешний источник данных PolyBase, поддерживающий проверку подлинности Kerberos, — Hadoop. Все другие внешние источники данных (SQL Server, Oracle, Teradata, MongoDB, универсальный ODBC) поддерживают только обычную проверку подлинности.
  • Пулы SQL в Azure Synapse Analytics содержат следующие заметки:
    • Для загрузки данных в Azure Synapse Analytics можно использовать IDENTITYлюбое допустимое значение.
    • В бессерверном пуле SQL Azure Synapse Analytics учетные данные базы данных могут указывать управляемое удостоверение рабочей области, имя субъекта-службы или маркер подписанного URL-адреса (SAS). Доступ с помощью удостоверения пользователя, включенного сквозной проверкой подлинности Microsoft Entra, также возможен с учетными данными базы данных, так как анонимный доступ к общедоступному хранилищу. Дополнительные сведения см. в разделе "Поддерживаемые типы авторизации хранилища".
    • В выделенном пуле SQL в Azure Synapse Analytics учетные данные базы данных могут указывать маркер подписанного URL-адреса (SAS), пользовательский идентификатор приложения, управляемое удостоверение рабочей области или ключ доступа к хранилищу.
Authentication T-SQL Supported Notes
Подпись Общего Доступа (SAS) CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'secret'; SQL Server 2022 и более поздних версий, Управляемый экземпляр SQL Azure, Azure Synapse Analytics, База данных SQL Azure
управляемое удостоверение; CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; База данных SQL Azure, Управляемый экземпляр SQL Azure, SQL Server 2025 с Azure Arc Чтобы включить Azure Arc, см. раздел Managed identity for SQL Server enabled by Azure Arc
Сквозная проверка подлинности Microsoft Entra с помощью удостоверения пользователя CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; Azure SQL Database, SQL database in Microsoft Fabric * В Azure Synapse см. раздел Microsoft Entra Connect: сквозная проверка подлинности
Обычная проверка подлинности ключа доступа S3 CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; SQL Server 2022 и более поздние версии
Источники данных ODBC или Kerberos (MIT KDC) CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>'; SQL Server 2019 и более поздних версий

* В SQL базе данных Microsoft Fabric, если нет указанного объёма данных данных, метод аутентификации по умолчанию сменяется на «USER IDENTITY» и использует пользовательский логин Entra ID в качестве контекста.

SECRET = "secret"

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

Warning

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

Remarks

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

Для защиты конфиденциальной информации в учетных данных в области базы данных требуется главный ключ базы данных (DMK). DMK — это симметричный ключ, который шифрует секрет в учетных данных в области базы данных. Перед созданием учетных данных с областью действия базы данных база данных должна иметь dmK. DmK должен быть зашифрован с помощью надежного пароля. База данных SQL Azure создаст динамический административный код со строгим, случайным образом выбранным паролем в рамках создания учетных данных базы данных или в рамках создания аудита сервера. Пользователи не могут создать dmK в логической master базе данных. Пароль главного ключа неизвестен корпорации Майкрософт и недоступен после создания. По этой причине рекомендуется создать dmK перед созданием учетных данных в области базы данных. Дополнительные сведения см. в разделе CREATE MASTER KEY (Transact-SQL).

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

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

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

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

Permissions

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

Examples

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

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

В следующем примере создаются учетные данные базы данных, которые можно использовать для создания внешнего источника данных, который может выполнять массовые операции, такие как BULK INSERT (Transact-SQL) и OPENROWSET (Transact-SQL).

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

D. Создание учетных данных в области базы данных с помощью управляемого удостоверения

Относится к: SQL Server 2025 (17.x)

SQL Server 2025 (17.x) предоставляет поддержку управляемых удостоверений Microsoft Entra. Сведения об использовании управляемого удостоверения с SQL Server, включенного Azure Arc, см. в статье "Управляемое удостоверение".

SP_CONFIGURE 'allow server scoped db credentials',1; 
RECONFIGURE;  

CREATE DATABASE SCOPED CREDENTIAL [managed_id] 
WITH IDENTITY = 'Managed Identity'; 

#. Создайте учетную данные базы данных с помощью Microsoft Entra ID

Относится к:Azure SQL Database, SQL database in Microsoft Fabric

В Azure SQL Database и SQL Database в Microsoft Fabric можно использовать собственный вход Entra ID для аутентификации внешнего источника данных.

В SQL базе данных Microsoft Fabric, если нет указанного объёма данных, метод аутентификации по USER IDENTITY умолчанию использует пользовательский логин Entra ID в качестве контекста.

CREATE DATABASE SCOPED CREDENTIAL MyCredential
WITH IDENTITY = 'User Identity';