Создаем информационную базу через авторизацию gMSA

Сегодня я покажу один недокументированный способ использования связки кластера  при создании информационной базы подключения к SQL серверу. Не нужно указывать логин SQL\sa на подключение к серверу, плюс службы SQL и Агента 1С работают из под системной групповой учетной записи (gMSA). Это безопасность и единичность настройки. Не нужно создавать отдельные учетные записи, давать им доступ на сервер помещая их в группу локальных администраторов.

Тестовые системы приближенные в настоящий момент используемые у меня в боевом виде

  • srv-ad.polygon.local (OS: Windows Server 2012 R2 Std English)
  • srv-1с.polygon.local (OS: Windows Server 2012 R2 Std English)
  • srv-sql.polygon.local (OS: Windows Server 2012 R2 Std English)
  • Login: ekzorchik
  • Password: 712mbddr@
  • Group: "Domain Admins"

Шаг №1: Создаю на домен контроллере системную групповую учетную запись (gmsasql) и нацеливаю ее на группу sqlserver в которую включены компьютеры: srv-1c & srv-sql

Win + R -> Command Prompt (Admin)

123456789C:\Windows\system32> powershell PS C:\Windows\system32> Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10)) PS C:\Windows\system32> Get-KdsRootKey PS C:\Windows\system32> New-ADServiceAccount -Name “gmsasql” -DNSHostName “srv-dc.polygon.local” PS C:\Windows\system32> Set-ADServiceAccount -Identity gmsasql -PrincipalsAllowedToRetrieveManagedPassword sqlserver
Доменная группа sqlserver: srv-sql & srv-1c
1PS C:\Windows\system32> Get-ADServiceAccount -Identity gmsasql -Properties PrincipalsAllowedToRetrieveManagedPassword

Шаг №2: На системы srv-sql & sql-1c устанавливаю коммандлеты для работы с групповой системной учетной записью gmsasql:

Win + R -> Command Prompt (Admin)

123456789C:\Windows\system32> powershell PS C:\Windows\system32> Install-WindowsFeature -Name “RSAT-AD-PowerShell” PS C:\Windows\system32> shutdown /r/ t/3 PS C:\Windows\system32> Test-ADServiceAccount -Identity “gmsasql” True

Шаг №3: На системах srv-sql & srv-1c посредством локальной групповой политики даю права на запуск как сервис и при использовании скрипта использовать системную групповую учетную запись. Можно кстати создать единую групповую политику и нацелить ее на эти две системы.

Win + R -> gpedit.msc & Win + X – Run -> gpedit.msc – Local Computer Policy – Computer Configuration – Windows Settings – Security Settings – Local Policies – User Rights Assignment

  • Log on as a batch job: добавляем системную учетную запись, т.е. POLYGON\gmsasql$
  • Log on as a service: добавляем системную учетную запись, т.е. POLYGON\gmsasql$

или как единая GPO (on srv-dc)

Win + X - Control Panel - Administrative Tools - Group Policy Management - Group Policy Management - Forest: polygon.local - Domains — и через правый клик мышью на polygon.local выбираю "Create a GPO in this domain, and Link it here..."

  • Name: GPO_GMSA
  • Source Started GPO: (none)

Затем делаю привязку по безопасности к группе в которую включены две системы: srv-sql & srv-1c

Создаю GPO_GMSA и ограничиваю применением только к группе sqlserver

и что еще важно во вкладку Delegation переходим и добавляем группу «Authenticated Users» права Read, должно быть вот так:

В Delegations обязательно добавляю Authentication Users = Read

Вот скриншот настроенной групповой политики:

Computer Configuration - Policies - Windows Settings - Security Settings - Local Policies - User Rights Assignment

  • Log on as a batch job: POLYGON\gmsasql$
  • Log on as a service: POLYGON\gmsasql$
Полученная групповая политика GPO_GMSA

После на системах srv-sql & srv-1c делаю gpupdate /force и проверяю что политика применилась.

Win + R -> Command Prompt (Admin)

123C:\Windows\system32> gpupdate /force C:\Windows\system32> shutdown /r /t 3

Шаг №4: Устанавливаю SQL Server из образа SW_DVD9_SQL_Svr_Enterprise_Edtn_2012w_SP4_64Bit_English_MLF_X21-43470.iso на srv-sql.

Описывать все шаги нет смысла я остановлюсь на тех что необходимые для указания что от имени групповой системной учетной записи нужно сделать запуск, а так за основу можно взять заметку «Как установить SQL Server на Server 2012 R2 Standard»

к примеру отмечаю компоненты:

  • Database Engine Services
  • Management Tools - Basic
  • Management Tools - Complete

Так должно быть чтобы использовать групповую системную учетную запись: (Колонку Password не трогаем и не заполняю, пароль придет с домен контроллера)

SQL службы запускаю от имени gMSA

Затем указываю, что буду использовать смешанную аутентификацию и добавляю групповую учетную запись:

Добавляю групповую системную учетную запись gmsasql на доступ к SQL Server

После того, как SQL Server будет установлен нужно для Ваших баз которые будут подключаться в кластер  сделать чтобы у них владельцем значилась групповая системная учетная запись.

Обязательно владельцем базы выставляю POLYGON\gmsasql$

Шаг №5: Устанавливаю компонент «Администрирование сервера 1С:Предприятие» из пакета windows_8_3_16_1063 (x86) на srv-1c

Устанавливаем компоненты:

  • 1С: Предприятие
  • Сервер 1С: Предприятие
  • Администрирование сервера 1С:Предприятие
  • Интерфейс на различных языках: Русский и Английский
  • Дополнительные функции администрирования

сперва указываем что нужно создать пользователя USR1CV8 и задаем ему пароль, к примеру 712mbbdr@

Задаю пароль на USR1CV8

А затем запустить оснастку Services

Win + X - Control Panel - Administrative Tools - Services и изменить запуск от имени созданной учетной записи .\USR1CV8 у сервиса: «Агент Сервера 1С:Предприятия 8.3» вкладка «Log On» на Browse - Locations: отмечаем Entire Directory и вводим наименование доменной учетной записи:

Enter the object name to select: gmsasql и нажимаем Check Names, поля Password & Confirm password: очищаем и нажимаем Apply - OK

Перебиваю запуск агента 1С на от имени POLYGON\gmsasql$

Перезапускаем службу «Агент Сервера 1С:Предприятия 8.3«: либо через оснастку, либо через консоль командной строки.

Шаг №6: Запускаю оснастку «Администрирование серверов 1С:Предприятия NEW» на сервере srv-1c которую установил(и) в «Шаг №5«, но увы оснастка не запускается:

Не запускается оснастка "Администрирование серверов 1С:Предприятия"

Решение: Нужно дать права групповой системной учетной записи полные права на каталог: «C:\Program Files (x86)\1cv8\srvinfo»

через правый клик по каталогу srvinfo выбираю Properties, затем вкладка «Security» — Edit - Add — нажимаю на Object Types... и отмечаю что поиск указываемой учетной записи вести еще в Service Accounts (Сервисных аккаунтах) и нажимаю Ok, затем ввожу наименование групповой системной учетной записи gmsasql и нажимаю Check Names

ввожу наименование групповой системной учетной записи gmsasql и нажимаю Check Names

И после того как ее добавил отмечаю что у нее должны быть полные права на данный каталог.

На каталог srvinfo даю полные права учетной записи POLYGON\gmsasql$

Для активации изменений также нужно перезапустить службу «Агент Сервера 1С:Предприятия 8.3» и только после проделанных действий выше получается возможным запуск службы "Агент Сервера 1С:Предприятия 8.3" от имени групповой системной учетной записи.

Но как же все таки запустить оснастку «Администрирование серверов 1С:Предприятия NEW» на сервере srv-1c?

Решение: нужно зайти в каталог «C:\Program Files (x86)\1cv8\8.3.16.1063\bin» и через правый клик мышью на bat—файле RegMSC.bat запустить его, как «Run as administrator» в ответ будет окно где произведена регистрация сервера и dll библиотек.

Запускаю RegMSC.bat с правами Администратора

И вот теперь оснастка «Администрирование серверов 1С:Предприятия NEW» на сервере srv-1c успешно запускается:

оснастка "Администрирование серверов 1С:Предприятия NEW" на сервере srv-1c успешно запускается

Шаг №7: Создаю информационную базу в оснастке «Администрирование серверов 1С:Предприятия NEW»

Создаю информационную базу

И указываю параметры подключения к SQL серверу где у меня создана база/восстановлена из бекапа:

  • Имя: 1ctest
  • Описание: 1ctest
  • Защищенное соединение:
  • Сервер базы данных: srv-sql.polygon.local
  • Тип СУБД: MS SQL Server
  • База данных: 1ctest
  • Пользователь сервера БД: не указываем
  • Пароль пользователя БД: не указываем
  • Разрешить выдачу лицензий сервером 1С:Предприятия: Да
  • Язык (Страна): русский (Россия)
  • Смещение дат: 2000
  • Создать базу данных в случае ее отсутствия: не отмечаю галочкой
  • Установить блокировку регламентных задаий: не отмечаю галочкой
Параметры подключения к SQL серверу

Но не без ложки дегтя не бывает — инициализация создания информационной базы вываливается в ошибку что не установлен Microsoft SQL Server Native Client

не установлен Microsoft SQL Server Native Client

Разбираюсь что к чему.

Через поисковик Google ввожу «SQL Server Native Client» и скачиваю ENU\x64\sqlncli.msi

После проделываю еще раз создание информационной базы и получаю уведомление что информационная база 1ctest уже зарегистрирована в кластере серверов 1С:Предприятия

Повторное создание настроек подключения говорит что база уже создана

Проверяю, а действительно ли есть подключение — ответ да есть.

Действительно информационная база создана

если запустить  клиент и настроить подключение к текущему кластеру  и базе на нем, то будет ли произведено подключение?

Нажимаю на «Конфигуратор»

Подключение к информационной базе в клиенте 1С создал

и подключение успешно к базе

Нажимаю на "Конфигуратор" и подключение успешно произведено

Шаг №8: Все выше заработало, т.к. у меня сервисы на обоих серверах запускаются от имени групповой системной учетной записью, по сути у нее права как у системы.

На заметку: У меня кластер  не лицензионный, а в рамках тестовой площадки был крякнутый и найден на просторах интернета.

Итого: Я разобрал, как связать кластер  и сервер базы данных не указываю каждый раз пароль на учетную запись sa. К тому же не раскрываю ее пароль для сотрудников и главное -администраторов.

Заметка работоспособна. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.