Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
Принцип информационной безопасности наименьших привилегий утверждает, что учетные записи и приложения имеют доступ только к данным и операциям, которым они требуются. С помощью SQL Server с поддержкой Azure Arc можно запустить службу расширения агента с минимальными привилегиями. В этой статье объясняется, как запустить службу расширения агента с минимальными привилегиями.
Чтобы при необходимости настроить службу для выполнения с минимальными привилегиями, выполните действия, описанные в этой статье. В настоящее время служба не запускается автоматически с минимальными привилегиями.
Настройка учетных записей службы Windows и разрешений для расширения Azure для SQL Server описывает минимальные разрешения привилегий для службы расширений агента.
Примечание.
В настоящее время наименее привилегированная конфигурация не применяется по умолчанию.
Существующие серверы с версией расширения 1.1.2859.223 или более поздней в конечном итоге получат наименее привилегированную конфигурацию. Это расширение было выпущено в ноябре 2024 года. Чтобы предотвратить автоматическое применение минимальных привилегий, заблокируйте обновление расширения после 1.1.2859.223.
После настройки службы расширения агента для запуска с минимальными привилегиями, используется NT SERVICE\SqlServerExtension учетная запись службы.
Локальная служебная учетная запись Windows: NT SERVICE\SqlServerExtension.
- Создано и управляется расширением Azure для SQL Server, если включен параметр наименьших привилегий.
- Предоставляет минимальные необходимые разрешения и привилегии для запуска расширения Azure для службы SQL Server в операционной системе Windows. Он имеет доступ только к папкам и каталогам, используемым для чтения и хранения конфигурации или записи журналов.
- Предоставлено разрешение на подключение и выполнение запросов в SQL Server с новой учетной записью, созданной специально для этой служебной учетной записи с минимальным уровнем доступа. Минимальные разрешения зависят от включенных функций.
- Обновляется, когда разрешения больше не требуются. Например, разрешения отменяются при отключении функции. Отзыв гарантирует, что разрешения не остаются после того, как они больше не требуются.
-
NT SERVICE\SqlServerExtensionудаляется при удалении расширения Azure для SQL Server или при отключении конфигурации с минимальными привилегиями.
Необходимые компоненты
В этом разделе описаны требования к системе и средства, которые необходимо выполнить в этой статье.
Требования к системе
Для конфигурации с минимальными привилегиями требуется:
- Windows Server 2012 или более поздних версий.
- SQL Server версии 2012 или более поздней версии.
- Учетная запись службы SQL Server должна быть членом предопределенной роли сервера sysadmin.
- Все базы данных должны быть в сети и обновляться.
Конфигурация с минимальными привилегиями в настоящее время не поддерживается в Linux.
Другие требования, указанные в предварительных требованиях, по-прежнему применяются.
Учетная запись службы SQL Server
По умолчанию учетная запись службы SQL Server является членом предопределенных ролей сервера sysadmin.
Как указано в предварительных требованиях, учетная запись службы SQL Server должна быть членом фиксированной роли сервера sysadmin для каждого экземпляра SQL Server. Расширение Azure для SQL Server имеет процесс Deployer.exe, который выполняется как NT AUTHORITY\SYSTEM, когда:
- Функции включены или отключены
- Экземпляры SQL Server добавляются или удаляются
Примечание.
Deployer.exe олицетворяет учетную запись службы SQL Server при подключении к SQL Server. После подключения он добавляет или удаляет разрешения в ролях сервера и базы данных в зависимости от того, какие функции включены или отключены. Этот процесс гарантирует, что расширение Azure для SQL Server использует минимальные привилегии. Поэтому учетная запись службы SQL Server должна быть членом фиксированной серверной роли sysadmin.
Если вы хотите управлять этим процессом более детально, чтобы учетная запись службы SQL Server не входила в фиксированную роль сервера sysadmin постоянно, выполните следующие действия.
- Временно добавьте учетную запись службы SQL Server в предопределяемую роль сервера sysadmin.
- Разрешите
Deployer.exeзапускать по крайней мере один раз, чтобы задать разрешения. - Удалите учетную запись службы SQL Server из предопределенных ролей сервера sysadmin.
Повторите эту процедуру в любое время, когда функции включаются или отключаются, или добавляются экземпляры SQL Server, чтобы разрешить Deployer.exe предоставлять минимально необходимые привилегии.
Important
Расширение Azure для SQL Server Deployer.exe требует NT AUTHORITY\SYSTEM для возможности подключения к SQL Server с разрешением CONNECT SQL в режимах standard и least privilege. Это требование существует, так как Deployer.exe всегда выполняется в учетной LocalSystem записи независимо от того, какая учетная запись службы использует расширение после подготовки.
Если NT AUTHORITY\SYSTEM не удается подключиться к SQL Server, Deployer.exe не удается создать имя входа NT SERVICE\SqlServerExtension или предоставить необходимые разрешения. Перед включением режима минимальных привилегий убедитесь, что NT AUTHORITY\SYSTEM имеет активный логин SQL Server с разрешением CONNECT SQL. См. Предварительные требования для шагов проверки.
Инструменты
Чтобы выполнить действия, описанные в этой статье, вам потребуется следующее:
- Azure CLI
-
arcdataрасширение Azure CLI версия1.5.9или более поздняя - Расширение Azure для SQL Server версии
1.1.2859.223или более поздних версий
Включение минимально необходимых привилегий
Войдите с помощью Azure CLI.
az loginПроверьте версию
arcdataрасширения.az extension list -o tableЕсли результаты включают поддерживаемую версию
arcdata, перейдите к следующему шагу.При необходимости установите или обновите
arcdataрасширение Azure CLI.Чтобы установить расширение, сделайте следующее.
az extension add --name arcdataЧтобы обновить расширение, выполните следующие действия.
az extension update --name arcdataВключите минимальные привилегии с помощью Azure CLI.
Чтобы включить минимальные привилегии, установите значение флага функции
LeastPrivilegeнаtrue. Чтобы выполнить эту задачу, выполните следующую команду с обновленными значениями для<resource-group>и<machine-name>.az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>Например, следующая команда включает минимальные привилегии для сервера с именем
myserverв группе ресурсов с именемmyrg:az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver
Проверка конфигурации наименьших привилегий
Чтобы убедиться, что ваш SQL Server, управляемый с помощью Azure Arc, настроен для работы с минимальными привилегиями:
В службах Windows найдите службу расширений Microsoft SQL Server. Убедитесь, что служба запущена от имени учетной записи службы
NT SERVICE\SqlServerExtension.Откройте планировщик задач на сервере и убедитесь, что задача на основе событий с именем
SqlServerExtensionPermissionProviderсоздается в разделеMicrosoft\SqlServerExtension.Примечание.
До выпуска в июле 2024 года
SqlServerExtensionPermissionProviderбыла запланированная задача, которая выполнялась каждый час.Откройте SQL Server Management Studio и проверьте имя входа
NT SERVICE\SqlServerExtension. Убедитесь, что учетной записи назначены следующие разрешения:- Подключите SQL
- Просмотр состояния базы данных
- Просмотр состояния сервера
Проверьте разрешения с помощью следующих запросов:
Чтобы проверить разрешения на уровне сервера, выполните следующий запрос:
EXECUTE AS LOGIN = 'NT SERVICE\SqlServerExtension'; SELECT * FROM fn_my_permissions(NULL, 'SERVER'); REVERT;Чтобы проверить разрешения на уровне базы данных, замените
<database name>имя одной из баз данных и выполните следующий запрос:EXECUTE AS LOGIN = 'NT SERVICE\SqlServerExtension'; USE <database name>; SELECT * FROM fn_my_permissions(NULL, 'database'); REVERT;