Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Управляемый экземпляр SQL Azure
В этой статье описано, как использовать субъекты-серверы (имена входа), поддерживаемые идентификатором Microsoft Entra (ранее Azure Active Directory) для защиты Управляемый экземпляр SQL Azure.
В этом руководстве описано следующее:
- Создайте имя входа Microsoft Entra для управляемого экземпляра SQL.
- Предоставьте разрешения для входа в управляемом экземпляре SQL.
- Создайте пользователей Microsoft Entra из имен входа.
- Назначение разрешений пользователям и управление безопасностью базы данных.
- Используйте олицетворение с пользователями.
- Используйте запросы между базами данных с пользователями.
- Сведения о функциях безопасности, таких как защита от угроз, аудит, маскирование данных и шифрование.
Примечание.
Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).
Необходимые компоненты
Для работы с руководством требуется наличие следующих компонентов:
- SQL Server Management Studio (SSMS)
- Управляемый экземпляр SQL
- Следуйте этой статье. Краткое руководство. Создание управляемого экземпляра SQL
- Возможность доступа к управляемому экземпляру SQL и подготовке администратора Microsoft Entra для управляемого экземпляра SQL. Дополнительные сведения см. в следующем разделе:
Ограничить доступ
Управляемые экземпляры SQL можно получить через частный IP-адрес. Так же как и в изолированной среде SQL Server, приложениям или пользователям потребуется доступ к сети Управляемого экземпляра SQL, прежде чем можно будет установить подключение. Дополнительные сведения см. в статье Подключение приложения к Управляемому экземпляру SQL.
Кроме того, можно настроить конечную точку службы в управляемом экземпляре SQL, которая позволяет использовать общедоступные подключения таким же образом, как для базы данных SQL Azure. Дополнительные сведения см. в статье о настройке общедоступной конечной точки в Управляемом экземпляре SQL Azure.
Создание имени входа Microsoft Entra с помощью SSMS
Администратор SQL может создать первое имя входа Microsoft Entra или администратора Microsoft Entra, созданного во время подготовки. Дополнительные сведения см. в статье "Подготовка администратора Microsoft Entra для Управляемый экземпляр SQL".
Примеры подключения к Управляемому экземпляру SQL см. в следующих статьях:
- Краткое руководство. Настройка виртуальной машины Azure для подключения к Управляемому экземпляру SQL
- Краткое руководство. Настройка соединения "точка — сеть" с Управляемым экземпляром SQL
Подключитесь к управляемому экземпляру SQL с помощью имени входа sysadmin SQL или администратора Microsoft Entra с помощью SQL Server Management Studio (SSMS).
В обозревателе объектов щелкните сервер правой кнопкой мыши и выберите Создать запрос.
В окне запроса используйте следующий синтаксис, чтобы создать имя входа для локальной учетной записи Microsoft Entra:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GOВ этом примере создается имя для входа для учетной записи
[email protected].USE master GO CREATE LOGIN [[email protected]] FROM EXTERNAL PROVIDER GOНа панели инструментов выберите Выполнить, чтобы создать имя для входа.
Проверьте только что добавленное имя входа, выполнив следующую команду T-SQL:
SELECT * FROM sys.server_principals; GO
Дополнительные сведения можно найти в разделе CREATE LOGIN (Transact-SQL).
Предоставление прав для создания имен для входа
Существующие имена входа должны иметь соответствующие разрешения или быть частью соответствующих ролей сервера для создания других имен входа Microsoft Entra.
Имена входа проверки подлинности SQL
Если имя входа является субъектом сервера на основе проверки подлинности SQL, оно должно быть назначено роли sysadmin для создания имен входа для учетных записей Microsoft Entra.
Имена входа проверки подлинности Microsoft Entra
- Если имя входа является субъектом сервера Microsoft Entra, оно должно быть назначено роли сервера sysadmin или securityadmin для создания имен входа для других пользователей, групп и приложений Microsoft Entra.
- Как минимум,
ALTER ANY LOGINразрешение должно быть предоставлено для создания других имен входа Microsoft Entra. - По умолчанию стандартные разрешения, предоставленные только что созданным именам входа Microsoft Entra,
masterиCONNECT SQLVIEW ANY DATABASE. - Роль сервера sysadmin может быть предоставлена многим именам входа Microsoft Entra в управляемом экземпляре SQL.
Чтобы добавить имя входа в роль сервера sysadmin , выполните следующие действия.
Снова войдите в управляемый экземпляр SQL или используйте существующее соединение с администратором Microsoft Entra или субъектом SQL, который является системным администратором.
В обозревателе объектов щелкните сервер правой кнопкой мыши и выберите Создать запрос.
Предоставьте для входа Microsoft Entra роль сервера sysadmin с помощью следующего синтаксиса T-SQL:
ALTER SERVER ROLE sysadmin ADD MEMBER login_name GOВ следующем примере роль сервера sysadmin предоставляется для входа
[email protected]:ALTER SERVER ROLE sysadmin ADD MEMBER [[email protected]] GO
Создание дополнительных имен входа Microsoft Entra с помощью SSMS
После создания и предоставления привилегий sysadmin для входа Microsoft Entra можно создать дополнительные имена входа с помощью FROM EXTERNAL PROVIDER предложения CREATE LOGIN.
Подключитесь к управляемому экземпляру SQL с помощью имени входа Microsoft Entra, выбрав "Подключиться к серверу " в СРЕДЕ SQL Server Management Studio (SSMS).
- Введите имя узла Управляемый экземпляр SQL в имени сервера.
- Для проверки подлинности выберите Microsoft Entra MFA , чтобы открыть окно входа с многофакторной проверкой подлинности. Вход. Дополнительные сведения см. в статье универсальной проверки подлинности (поддержка SSMS для многофакторной проверки подлинности).
В обозревателе объектов щелкните сервер правой кнопкой мыши и выберите Создать запрос.
В окне запроса используйте следующий синтаксис, чтобы создать имя входа для другой учетной записи Microsoft Entra:
USE master GO CREATE LOGIN login_name FROM EXTERNAL PROVIDER GOВ этом примере создается имя входа для пользователя
[email protected]Microsoft Entra, доменaadsqlmi.netкоторого федеративн с доменом Microsoft Entraaadsqlmi.onmicrosoft.com.Выполните следующую команду T-SQL. Федеративные учетные записи Microsoft Entra — это Управляемый экземпляр SQL замены локальных имен входа и пользователей Windows.
USE master GO CREATE LOGIN [[email protected]] FROM EXTERNAL PROVIDER GOСоздайте базу данных в управляемом экземпляре SQL с помощью синтаксиса CREATE DATABASE . Эта база данных будет использоваться для проверки имен для входа пользователей в следующем разделе.
В обозревателе объектов щелкните сервер правой кнопкой мыши и выберите Создать запрос.
В окне запроса создайте базу данных с именем MyMITestDB, используя следующий синтаксис.
CREATE DATABASE MyMITestDB; GO
Создайте Управляемый экземпляр SQL имя входа для группы в идентификаторе Microsoft Entra. Перед добавлением имени входа в Управляемый экземпляр SQL группа должна существовать в идентификаторе Microsoft Entra. См. статью "Создание базовой группы" и добавление участников с помощью идентификатора Microsoft Entra. Создайте группу mygroup и добавьте участников в эту группу.
Откройте окно нового запроса в SQL Server Management Studio.
В этом примере предполагается, что существует группа с именем mygroup в идентификаторе Microsoft Entra ID. Выполните следующую команду:
USE master GO CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER GOВ качестве теста войдите в управляемый экземпляр SQL с помощью только что созданного имени входа или группы. Откройте новое подключение к управляемому экземпляру SQL и при проверке подлинности используйте новое имя входа.
В обозревателе объектов щелкните сервер правой кнопкой мыши и выберите Создать запрос для нового подключения.
Проверьте разрешения сервера для созданного имени входа Microsoft Entra, выполнив следующую команду:
SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE') GO
Поддержка субъектов Microsoft Entra в Sql Azure в качестве пользователей и имен входа распространяется на Внешняя идентификация Microsoft Entra внутренних и внешних гостевых пользователей. Гостевые пользователи, как по отдельности, так и в составе группы, могут использоваться так же, как и любой другой пользователь Microsoft Entra в SQL Azure. Если вы хотите, чтобы гостевые пользователи могли создавать другие имена входа сервера Microsoft Entra или пользователи базы данных, у них должны быть разрешения на чтение других удостоверений в каталоге Microsoft Entra. Это разрешение настраивается на уровне каталога. Дополнительные сведения см. в разделе "Разрешения гостевого доступа" в идентификаторе Microsoft Entra.
Создание пользователя Microsoft Entra из имени входа Microsoft Entra
Авторизация в отдельных базах данных работает так же, Управляемый экземпляр SQL как и с базами данных в SQL Server. Вы можете создать пользователя из существующего имени входа в базу данных, которая предоставляет разрешения для этой базы данных или добавлена в роль базы данных.
Теперь, когда мы создали базу данных MyMITestDB и имя входа, которое имеет разрешения только по умолчанию, следующим шагом является создание пользователя из этого имени входа. На данный момент имя входа может подключиться к управляемому экземпляру SQL и просмотреть все базы данных, но он не может взаимодействовать с базами данных. Если вы войдите с помощью учетной записи Microsoft Entra с разрешениями по умолчанию и попытаетесь развернуть только что созданную базу данных, вы увидите следующую ошибку:
Дополнительные сведения о предоставлении разрешений к базе данных см. в статье Приступая к работе с разрешениями Database Engine.
Создание пользователя Microsoft Entra и создание примера таблицы
Примечание.
Существуют некоторые ограничения, когда пользователь входит в группу Microsoft Entra.
Например, вызов SUSER_SID возвращается NULL, так как заданный пользователь Microsoft Entra не является частью таблицы sys.server_principals .
Поэтому доступ к определенным хранимым процедурам или списку предоставленных разрешений может быть ограничен в этом случае.
Войдите в управляемый экземпляр SQL с помощью учетной записи sysadmin в SQL Server Management Studio.
В обозревателе объектов щелкните сервер правой кнопкой мыши и выберите Создать запрос.
В окне запроса используйте следующий синтаксис, чтобы создать пользователя из имени входа Microsoft Entra:
USE <Database Name> -- provide your database name GO CREATE USER user_name FROM LOGIN login_name GOВ следующем примере создается пользователь
[email protected]на основе имени для входа[email protected]:USE MyMITestDB GO CREATE USER [[email protected]] FROM LOGIN [[email protected]] GOОна также поддерживается для создания пользователя Microsoft Entra из имени входа Microsoft Entra, который является группой.
В следующем примере создается имя входа для группы Microsoft Entra group mygroup , которая существует в клиенте Microsoft Entra:
USE MyMITestDB GO CREATE USER [mygroup] FROM LOGIN [mygroup] GOВсе пользователи, принадлежащие к mygroup, могут получить доступ к базе данных MyMITestDB.
Внимание
При создании пользователя из имени входа Microsoft Entra укажите user_name в том же login_name
LOGIN.Дополнительные сведения можно найти в статье CREATE USER (Transact-SQL).
В окне нового запроса создайте тестовую таблицу, используя следующую команду T-SQL:
USE MyMITestDB GO CREATE TABLE TestTable ( AccountNum varchar(10), City varchar(255), Name varchar(255), State varchar(2) );Создайте подключение в SSMS под именем созданного пользователя. Вы заметите, что таблица TestTable , созданная ранее sysadmin , не отображается. Необходимо предоставить пользователю разрешения на чтение данных из базы данных.
Вы можете проверить текущие разрешения пользователя, выполнив следующую команду:
SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE') GO
Назначение пользователей ролям уровня базы данных
Чтобы пользователь мог просматривать данные в базе данных, ему можно предоставить роли уровня базы данных.
Войдите в управляемый экземпляр SQL с помощью учетной записи sysadmin с помощью SQL Server Management Studio.
В обозревателе объектов щелкните сервер правой кнопкой мыши и выберите Создать запрос.
Предоставьте пользователю Microsoft Entra роль базы данных db_datareader с помощью следующего синтаксиса T-SQL:
Use <Database Name> -- provide your database name ALTER ROLE db_datareader ADD MEMBER user_name GOСледующий пример предоставляет пользователю
[email protected]и группе mygroup разрешения db_datareader в базе данных MyMITestDB :USE MyMITestDB GO ALTER ROLE db_datareader ADD MEMBER [[email protected]] GO ALTER ROLE db_datareader ADD MEMBER [mygroup] GOУбедитесь, что пользователь Microsoft Entra, созданный в базе данных, существует, выполнив следующую команду:
SELECT * FROM sys.database_principals GOСоздайте новое подключение к управляемому экземпляру SQL с пользователем, добавленным в роль db_datareader .
Разверните базу данных в обозревателе объектов, чтобы просмотреть таблицу.
Откройте новое окно запроса и выполните следующую
SELECTинструкцию:SELECT * FROM TestTableВы можете просматривать данные таблицы? Вы увидите возвращаемые столбцы, как показано на следующем снимке экрана:
Олицетворения имен входа Microsoft Entra
Управляемый экземпляр SQL поддерживает олицетворение имен имен входа Microsoft Entra.
Проверка олицетворения
Войдите в управляемый экземпляр SQL с помощью учетной записи sysadmin с помощью SQL Server Management Studio.
В обозревателе объектов щелкните сервер правой кнопкой мыши и выберите Создать запрос.
В окне запроса создайте новую хранимую процедуру, используя следующую команду:
USE MyMITestDB GO CREATE PROCEDURE dbo.usp_Demo WITH EXECUTE AS '[email protected]' AS SELECT user_name(); GOС помощью следующей команды убедитесь, что пользователь, которого вы олицетворяете при выполнении хранимой процедуры, — это
[email protected].Exec dbo.usp_DemoПротестируйте олицетворение с помощью инструкции
EXECUTE AS LOGIN:EXECUTE AS LOGIN = '[email protected]' GO SELECT SUSER_SNAME() REVERT GO
Примечание.
Только имена входа на уровне SQL Server, которые являются частью роли sysadmin , могут выполнять следующие операции, предназначенные для субъектов Microsoft Entra:
EXECUTE AS USEREXECUTE AS LOGIN
Использование межбазовых запросов
Запросы между базами данных поддерживаются для учетных записей Microsoft Entra с именами входа Microsoft Entra. Чтобы протестировать запрос между базами данных с помощью группы Microsoft Entra, необходимо создать другую базу данных и таблицу. Если они уже существуют, их создание можно пропустить.
Войдите в управляемый экземпляр SQL с помощью учетной записи sysadmin с помощью SQL Server Management Studio.
В обозревателе объектов щелкните сервер правой кнопкой мыши и выберите Создать запрос.
В окне запроса создайте базу данных с именем MyMITestDB2 и таблицу с именем TestTable2, используя следующую команду.
CREATE DATABASE MyMITestDB2; GO USE MyMITestDB2 GO CREATE TABLE TestTable2 ( EmpId varchar(10), FirstName varchar(255), LastName varchar(255), Status varchar(10) );В новом окне запроса выполните следующую команду, чтобы создать пользовательную группу в новой базе данных MyMITestDB2 и предоставить
SELECTразрешения для этой базы данных mygroup:USE MyMITestDB2 GO CREATE USER [mygroup] FROM LOGIN [mygroup] GO GRANT SELECT TO [mygroup] GOВойдите в управляемый экземпляр SQL с помощью SQL Server Management Studio в качестве члена группы Microsoft Entra mygroup. Откройте новое окно запроса и выполните инструкцию между базами данных
SELECT:USE MyMITestDB SELECT * FROM MyMITestDB2..TestTable2 GOВы должны увидеть результаты таблицы TestTable2.
Дополнительные поддерживаемые сценарии
- Управление агентом SQL и выполнение заданий поддерживаются для имен входа Microsoft Entra.
- Имена входа Microsoft Entra могут выполнять операции резервного копирования и восстановления базы данных.
- Аудит всех инструкций, связанных с именами входа Microsoft Entra и событиями проверки подлинности.
- Выделенное подключение администратора для имен входа Microsoft Entra, входящих в роль сервера sysadmin .
- Имена входа Microsoft Entra поддерживаются с помощью программы sqlcmd и средства SQL Server Management Studio .
- Триггеры входа поддерживаются для событий входа, поступающих из имен входа Microsoft Entra.
- Служба Service Broker и почта базы данных могут быть настроены с помощью имен входа Microsoft Entra.
Связанный контент
- Функции безопасности управляемого экземпляра SQL
- Приступайте к аудиту SQL Managed Instance в Azure
- Always Encrypted
- Настройка расширенной защиты от угроз в Управляемом экземпляре SQL Azure
- Динамическое маскирование данных
- Безопасность на уровне строк
- Прозрачное шифрование данных (TDE)
- Что такое Управляемый экземпляр SQL Azure?