Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
Инсталлятор SQL Server 2016 в ходе установки экземпляра настраивает на операционной системе сервер ряд параметров, в том числе и параметры безопасности, для учётных записей, от имени которых будут работать службы SQL Server. Однако несмотря на то, что в ходе установки в качестве учётных записей служб нами могут быть заданы определённые сервисные учётные записи (user/MSA/gMSA), они в явном виде могут не получить нужных привилегий в ОС. Вместо этого инсталлятор SQL Server выдаёт соответствующие привилегии используемым по умолчанию виртуальным учётным записям (Virtual Account) вида NT Service\MSSQL&<имя экземпляра>, NT Service\SQLAgent&<имя экземпляра> и т.п.. По сути своей разрешения, выданные сервисным учётным записям (user/MSA/gMSA) и выданные виртуальным учётным записям, которые автоматически создаёт инсталлятор SQL Server, тождественны. Прочитать об этом можно в обсуждении Раздача прав сервисным учётным записям при установке SQL Server 2016
NT Service\MSSQL&<имя экземпляра>
NT Service\SQLAgent&<имя экземпляра>
Получить информацию о привилегиях, которые должны быть выданы сервисным учётным записям для каждого типа службы SQL Server можно в документе Microsoft Docs - SQL Server : Configure Windows Service Accounts and Permissions
После установки SQL Server нам желательно, как минимум, проверить в консоли Local Security Policy (secpol.msc) в разделе Local Policies > User Rights Assignment следующие назначения прав для учётных записей, от имени которых запускаются службы экземпляра SQL Server Database Engine и SQL Server Agent:
Необходимо убедиться в том, что выданное нами ранее право мгновенной инициализации файлов (Database instant file initialization), действительно работает. Для этого в консоли SQL Server Management Studio проверим SQL Server error log. При перезапуске службы экзепляра SQL Server в логе должно фигурировать информационное событие вида:
Database Instant File Initialization: enabled. For security and performance considerations see the topic 'Database Instant File Initialization' in SQL Server Books Online. This is an informational message only. No user action is required.
Попробуем для проверки в консоли SQL Server Management Studio временно создать новую базу данных с размером файла данных, например, 10GB и журнал транзакций размером в 1 MB. Если база создалась моментально, то все работает корректно. Если база создаётся длительное время, значит c механизмом Database instant file initialization какие-то проблемы.
Дополнительный метод проверки с включением трассировки SQL Server можно подсмотреть в статье SQL Server best practice: grant permissions to per-service SID
Учётная запись от имени которой выполняется служба SQL Server Agent должна иметь полный доступ к экземпляру SQL Server, так как это потребуется в дальнейшем при настройке регламентных процедур обслуживания. Подтверждение требования такого рода можно найти в документе Select an Account for the SQL Server Agent Service
Разрешения такого рода для сервисной учётной записи вида NT SERVICE\SQLAgent$<ИмяЭкземпляра> должны появиться на уровне экземпляра автоматически. Мы можем это перепроверить, заглянув в консоли SQL Server Management Studio в список логинов экземпляра SQL Server.
NT SERVICE\SQLAgent$<ИмяЭкземпляра>
Проверено на следующих конфигурациях:
Автор первичной редакции: Алексей Максимов Время публикации: 12.02.2019 16:15