Авторизация доступа к Базе данных SQL, Управляемому экземпляру SQL и Azure Synapse Analytics
Область применения: База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics
В этой статье раскрываются следующие темы:
- Параметры конфигурации для База данных SQL Azure, Управляемый экземпляр SQL Azure и Azure Synapse Analytics, которые позволяют пользователям выполнять административные задачи и получать доступ к данным, хранящимся в этих базах данных.
- Настройка доступа и авторизации после первоначального создания нового сервера.
- Как добавить имена входа и учетные записи пользователей в
master
базу данных, а затем предоставить эти учетные записи административным разрешениям. - Добавление в пользовательские базы данных учетных записей пользователей, либо связанных с именами входа, либо автономных.
- Настройка учетных записей пользователей, имеющих разрешения в пользовательских базах данных, полученные с помощью ролей базы данных или явно.
Внимание
Базы данных в База данных SQL Azure, Управляемый экземпляр SQL Azure и Azure Synapse называются коллективно в оставшейся части этой статьи как базы данных, а сервер ссылается на логический сервер, который управляет базами данных для База данных SQL Azure и Azure Synapse.
Примечание.
Идентификатор Microsoft Entra ранее был известен как Azure Active Directory (Azure AD).
Проверка подлинности и авторизация
Аутентификацией или проверкой подлинности называют процесс подтверждения личности пользователя. Пользователь подключается к базе данных с помощью учетной записи пользователя. Когда пользователь пытается подключиться к базе данных, он предоставляет учетную запись пользователя и данные аутентификации. Аутентификация пользователя выполняется с помощью одного из следующих двух методов:
-
При использовании этого метода пользователь отправляет имя учетной записи пользователя и связанный пароль, чтобы установить соединение. Этот пароль хранится в
master
базе данных для учетных записей пользователей, связанных с именем входа или хранящимся в базе данных, содержащей учетные записи пользователей, не связанные с именем входа.Примечание.
База данных SQL Azure применяет только сложность паролей для политики паролей. Сведения о политике паролей в Управляемый экземпляр SQL Azure см. в Управляемый экземпляр SQL Azure часто задаваемых вопросов (вопросы и ответы).
Проверка подлинности Microsoft Entra
С помощью этого метода проверки подлинности пользователь отправляет имя учетной записи пользователя и запрашивает, что служба использует учетные данные, хранящиеся в идентификаторе Microsoft Entra (ранее — Azure Active Directory).
Имена входа и пользователи: учетная запись пользователя в базе данных может быть связана с именем входа, хранящимся в master
базе данных или именем пользователя, хранящимся в отдельной базе данных.
- Имя входа — это отдельная учетная запись в
master
базе данных, с которой можно связать учетную запись пользователя в одной или нескольких базах данных. Если используется имя для входа, вместе с ним хранятся учетные данные для учетной записи пользователя. - Учетная запись пользователя — это отдельная учетная запись в любой базе данных, которая может быть, но не должна быть связана с именем входа. Если учетная запись пользователя не связана с именем для входа, то учетные данные хранятся вместе с учетной записью пользователя.
Авторизация предоставляется для доступа к данным и выполнения различных действий. Управление ей осуществляется с помощью ролей базы данных и явных разрешений. Авторизация — это по сути набор разрешений, которые назначены пользователю и которые определяют, какие действия доступны этому пользователю. Авторизация определяется членством в ролях и разрешениями уровня объекта базы данных, назначенными учетной записи пользователя. Обычно пользователям рекомендуется предоставлять наименьшие необходимые привилегии.
Существующие имена для входа и учетные записи пользователей после создания базы данных
При первом развертывании SQL Azure можно указать имя входа и пароль для специального типа административного входа, администратор сервера. Следующая конфигурация имен входа и пользователей в основных и пользовательских базах данных происходит во время развертывания:
- Создается имя для входа SQL с правами администратора с использованием указанного имени для входа. Имя входа — это отдельная учетная запись для входа в База данных SQL, Управляемый экземпляр SQL и Azure Synapse.
- Этому имени для входа предоставляются полные права администратора во всех базах данных в качестве субъекта серверного уровня. Имя входа имеет все доступные разрешения и не может быть ограничено. В Управляемом экземпляре SQL это имя входа добавляется в предопределенную роль сервера sysadmin (эта роль не существует в Базе данных SQL Azure).
- При входе этой учетной записи в базу данных они соответствуют специальной учетной записи пользователя (учетной записи
dbo
пользователя, которая существует в каждой пользовательской базе данных. Пользователь dbo имеет все разрешения базы данных в базе данных и является членомdb_owner
предопределенных ролей базы данных. Дополнительные предопределенные роли базы данных рассматриваются далее в этой статье.
Чтобы определить учетную запись администратора сервера, откройте портал Azure и перейдите на вкладку "Свойства" логического сервера или управляемого экземпляра:
Внимание
Имя учетной записи администратора сервера нельзя изменить после его создания. Чтобы сбросить пароль администратора сервера, перейдите к портал Azure, выберите СЕРВЕР SQL Server, выберите сервер из списка и нажмите кнопку "Сбросить пароль". Чтобы сбросить пароль для Управляемый экземпляр SQL, перейдите к портал Azure, выберите экземпляр и нажмите кнопку "Сбросить пароль". Вы также можете использовать PowerShell или Azure CLI.
Создание дополнительных имен для входа и пользователей с правами администратора
На этом этапе ваш сервер или управляемый экземпляр настроен для доступа только с помощью одного имени входа SQL и учетной записи пользователя. Для создания дополнительных учетных записей с полными или частичными правами администратора доступны следующие варианты (в зависимости от режима развертывания).
Создание учетной записи администратора Microsoft Entra с полными правами администратора
Включите проверку подлинности Microsoft Entra и добавьте администратора Microsoft Entra. Одна учетная запись Microsoft Entra может быть настроена в качестве администратора развертывания SQL Azure с полными административными разрешениями. Эта учетная запись может быть отдельной учетной записью или учетной записью группы безопасности. Администратор Microsoft Entra должен быть настроен, если вы хотите использовать учетные записи Microsoft Entra для подключения к База данных SQL, Управляемый экземпляр SQL или Azure Synapse. Подробные сведения о включении проверки подлинности Microsoft Entra для всех типов развертывания SQL Azure см. в следующих статьях:
В Управляемом экземпляре SQL создайте имена входа SQL с полными разрешениями администратора.
- Создайте в базе данных дополнительный вход
master
SQL. - Добавьте имя для входа к предопределенной роли сервера sysadmin с помощью оператора ALTER SERVER ROLE. У этого имени для входа будут полные права администратора.
- Кроме того, создайте имя входа Microsoft Entra с помощью синтаксиса CREATE LOGIN .
Примечание.
Роли
dbmanager
иloginmanager
роли не относятся к Управляемый экземпляр SQL Azure развертываниям.- Создайте в базе данных дополнительный вход
В Базе данных SQL создайте имена для входа SQL с ограниченными административными разрешениями.
- Создайте в базе данных дополнительный вход
master
SQL. - Добавьте имя входа в
##MS_DatabaseManager##
роли уровня сервера и##MS_DatabaseConnector##
роли уровня сервера с помощью инструкции ALTER SERVER ROLE.##MS_LoginManager##
Члены специальных
master
ролей базы данных для База данных SQL Azure имеют полномочия на создание баз данных и управление ими или создание имен входа и управление ими. В базах данных, созданных пользователем, который является членом ролиdbmanager
, этот пользователь сопоставляется с фиксированной ролью базы данныхdb_owner
и может входить в нее и управлять ею с помощью учетной записи пользователяdbo
. Эти роли не имеют явных разрешений за пределамиmaster
базы данных.Внимание
Вы не можете создать дополнительный вход SQL с полными административными разрешениями в База данных SQL Azure. Только учетная запись администратора сервера или учетная запись администратора Microsoft Entra (которая может быть группой Microsoft Entra) может добавлять или удалять другие имена входа в роли сервера или из них. Это зависит от База данных SQL Azure.
- Создайте в базе данных дополнительный вход
В выделенном пуле SQL Azure Synapse создайте имена входа SQL с ограниченными правами администратора.
- Создайте в базе данных дополнительный вход
master
SQL. - Создайте учетную запись пользователя в базе данных, связанной
master
с этим новым именем входа. - Добавьте учетную запись
dbmanager
loginmanager
пользователя в роль или обеmaster
базы данных с помощью инструкции sp_addrolemember.
- Создайте в базе данных дополнительный вход
В бессерверном пуле SQL Azure Synapse создайте имена входа SQL с ограниченными правами администратора.
- Создайте в базе данных дополнительный вход
master
SQL. - Добавьте имя входа SQL в предопределяемую роль сервера sysadmin с помощью инструкции ALTER SERVER ROLE .
- Кроме того, создайте имя входа Microsoft Entra с помощью синтаксиса CREATE LOGIN .
- Создайте в базе данных дополнительный вход
Создание учетных записей для пользователей без прав администратора
Учетные записи для пользователей без прав администратора можно создавать одним из двух способов.
Создание имени для входа
Создайте имя входа SQL в
master
базе данных. Затем создайте учетную запись пользователя в каждой базе данных, к которой пользователю требуется доступ, и свяжите учетную запись пользователя с этим именем для входа. Этот подход предпочтителен, если пользователь должен получить доступ к нескольким базам данных и вы хотите синхронизировать пароли. Однако с этим подходом возникают сложности при использовании георепликации, так как имя для входа нужно создать как на сервере-источнике, так и на серверах-получателях. Дополнительные сведения см. в статье Настройка безопасности Базы данных SQL Azure и управление ею для геовосстановления или отработки отказа.Создание учетной записи пользователя
Создайте учетную запись пользователя в базе данных, к которой пользователю нужен доступ (также называется автономным пользователем).
- В Базе данных SQL вы всегда можете создать учетную запись этого типа.
- С помощью Управляемый экземпляр SQL поддержки субъектов сервера Microsoft Entra можно создавать учетные записи пользователей для проверки подлинности в Управляемый экземпляр SQL без необходимости создавать пользователей базы данных как автономного пользователя базы данных.
При таком подходе сведения об аутентификации пользователей хранятся в каждой базе данных и автоматически реплицируются в геореплицированные базы данных. Однако если одна и та же учетная запись существует в нескольких базах данных и используете проверку подлинности SQL, необходимо синхронизировать пароли вручную. Кроме того, если у пользователя есть учетная запись в разных базах данных с разными паролями, могут возникнуть проблемы с запоминанием этих паролей.
Внимание
Чтобы создать автономных пользователей, сопоставленных с удостоверениями Microsoft Entra, необходимо войти в систему с помощью учетной записи Microsoft Entra в базе данных в База данных SQL Azure. В Управляемый экземпляр SQL имя входа SQL с sysadmin
разрешениями также может создать имя входа Или пользователя Microsoft Entra.
Примеры, демонстрирующие создание имен для входа и пользователей, см. в следующих статьях:
- Создание имени входа для Базы данных SQL Azure
- Создание имени входа для Управляемого экземпляра SQL Azure
- Создание имени входа для Azure Synapse
- Создание пользователя
- Создание пользователей, содержащихся в Microsoft Entra
Совет
Инструкции по безопасности, включая создание пользователей в Базе данных SQL Azure, см. в руководстве по защите Базы данных SQL Azure.
Использование фиксированных и настраиваемых ролей базы данных
После создания учетной записи пользователя в базе данных на основе имени для входа или в виде автономного пользователя можно авторизовать этого пользователя для выполнения различных действий и доступа к данным в определенной базе данных. Для авторизации доступа можно использовать следующие методы.
Предопределенные роли базы данных
Добавьте учетную запись пользователя к фиксированной роли базы данных. Существует 9 фиксированных ролей базы данных, у каждой из которых свой определенный набор разрешений. Самые распространенные роли базы данных: db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter и db_denydatareader. Роль db_owner обычно используется для предоставления полных прав ограниченному числу пользователей. Другие фиксированные роли можно использовать для быстрого получения простых баз данных при разработке, но их не рекомендуется использовать для большинства рабочих баз данных. Например, фиксированная роль базы данных db_datareader предоставляет доступ на чтение ко всем таблицам в базе данных —это больше, чем необходимо для работы.
Чтобы добавить пользователя к предопределенной роли базы данных:
- В База данных SQL Azure и бессерверном пуле SQL Azure Synapse используйте инструкцию ALTER ROLE. См. примеры ALTER ROLE.
- В выделенном пуле SQL Azure Synapse используйте инструкцию sp_addrolemember . См. примеры sp_addrolemember.
Настраиваемая роль базы данных
Создайте настраиваемую роль базы данных с помощью оператора CREATE ROLE. Настраиваемая роль позволяет создавать определяемые пользователем роли базы данных, а затем предоставлять каждой роли наименьший набор разрешений, необходимый для работы. Затем можно добавить пользователей в настраиваемую роль. Если пользователь является участником нескольких ролей, то ему предоставлены разрешения всех этих ролей.
Предоставление разрешений напрямую
Предоставьте учетной записи пользователя разрешения напрямую. Существует более 100 разрешений, которые можно по отдельности предоставлять или отменять в базе данных SQL. Многие эти разрешения являются частью других разрешений. Например, разрешение
UPDATE
на схеме включает в себя разрешениеUPDATE
для каждой таблицы в этой схеме. Как и в большинстве систем разрешений, отмена разрешения переопределяет предоставление. Так как некоторые разрешения включены в другие разрешения и их достаточно много, необходимо внимательно изучить их, чтобы спроектировать соответствующую систему разрешений, которая будет надежно защищать базу данных. Изучите список разрешений на этой странице и ознакомьтесь с графическим представлением разрешений.
Использование групп
Эффективное управление доступом основано на разрешениях, назначенных группам безопасности Active Directory, и фиксированным или настраиваемым ролям, а не отдельным пользователям.
При использовании проверки подлинности Microsoft Entra поместите пользователей Microsoft Entra в группу безопасности Microsoft Entra. Создайте пользователя автономной базы данных для группы. Добавьте одного или нескольких пользователей базы данных в качестве члена пользовательских или встроенных ролей базы данных с определенными разрешениями, соответствующими этой группе пользователей.
Если используется аутентификация SQL, создайте пользователей автономной базы данных в базе данных. Поместите одного или нескольких пользователей базы данных в настраиваемую роль базы данных с конкретными разрешениями, соответствующими этой группе пользователей.
Примечание.
Можно также использовать группы для пользователей неавтономной базы данных.
Ознакомьтесь со следующими возможностями, которые можно использовать, чтобы ограничить или расширить права:
- Чтобы безопасно временно повысить уровень разрешений, можно использовать олицетворение и подписание модулей.
- Безопасность на уровне строк можно использовать, чтобы ограничить доступ к строкам, к которым может получить доступ пользователь.
- Маскирование данных позволяет снизить уязвимость конфиденциальных данных.
- Чтобы ограничить действия, выполняемые в базе данных, можно использовать хранимые процедуры.