Создаем информационную базу через авторизацию gMSA
Сегодня я покажу один недокументированный способ использования связки кластера 1С
при создании информационной базы подключения к 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)
123456789 | C:\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 |
1 | PS C:\Windows\system32> Get-ADServiceAccount -Identity gmsasql -Properties PrincipalsAllowedToRetrieveManagedPassword |
Шаг №2: На системы srv-sql & sql-1c
устанавливаю коммандлеты для работы с групповой системной учетной записью gmsasql:
Win + R -> Command Prompt (Admin)
123456789 | C:\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
и что еще важно во вкладку Delegation
переходим и добавляем группу «Authenticated 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$
После на системах srv-sql & srv-1c
делаю gpupdate /force
и проверяю что политика применилась.
Win + R -> Command Prompt (Admin)
123 | C:\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 Server
будет установлен нужно для Ваших баз которые будут подключаться в кластер 1С
сделать чтобы у них владельцем значилась групповая системная учетная запись.
Шаг №5: Устанавливаю компонент «Администрирование сервера 1С:Предприятие
» из пакета windows_8_3_16_1063 (x86)
на srv-1c
Устанавливаем компоненты:
1С: Предприятие
Сервер 1С: Предприятие
Администрирование сервера 1С:Предприятие
Интерфейс на различных языках: Русский и Английский
Дополнительные функции администрирования
сперва указываем что нужно создать пользователя USR1CV8
и задаем ему пароль, к примеру 712mbbdr@
А затем запустить оснастку 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С:Предприятия 8.3
«: либо через оснастку, либо через консоль командной строки.
Шаг №6: Запускаю оснастку «Администрирование серверов 1С:Предприятия NEW
» на сервере srv-1c
которую установил(и) в «Шаг №5«, но увы оснастка не запускается:
Решение: Нужно дать права групповой системной учетной записи полные права на каталог: «C:\Program Files (x86)\1cv8\srvinfo
»
через правый клик по каталогу srvinfo
выбираю Properties
, затем вкладка «Security
» — Edit - Add
— нажимаю на Object Types...
и отмечаю что поиск указываемой учетной записи вести еще в Service Accounts (Сервисных аккаунтах)
и нажимаю Ok
, затем ввожу наименование групповой системной учетной записи gmsasql
и нажимаю Check Names
И после того как ее добавил отмечаю что у нее должны быть полные права на данный каталог.
Для активации изменений также нужно перезапустить службу «Агент Сервера 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
библиотек.
И вот теперь оснастка «Администрирование серверов 1С:Предприятия NEW
» на сервере srv-1c
успешно запускается:
Шаг №7: Создаю информационную базу в оснастке «Администрирование серверов 1С:Предприятия NEW
»
И указываю параметры подключения к SQL
серверу где у меня создана база/восстановлена из бекапа:
Имя: 1ctest
Описание: 1ctest
Защищенное соединение:
Сервер базы данных: srv-sql.polygon.local
Тип СУБД: MS SQL Server
База данных: 1ctest
Пользователь сервера БД: не указываем
Пароль пользователя БД: не указываем
Разрешить выдачу лицензий сервером 1С:Предприятия: Да
Язык (Страна): русский (Россия)
Смещение дат: 2000
Создать базу данных в случае ее отсутствия: не отмечаю галочкой
Установить блокировку регламентных задаий: не отмечаю галочкой
Но не без ложки дегтя не бывает — инициализация создания информационной базы вываливается в ошибку что не установлен Microsoft SQL Server Native Client
Разбираюсь что к чему.
Через поисковик Google
ввожу «SQL Server Native Client
» и скачиваю ENU\x64\sqlncli.msi
После проделываю еще раз создание информационной базы и получаю уведомление что информационная база 1ctest
уже зарегистрирована в кластере серверов 1С:Предприятия
Проверяю, а действительно ли есть подключение — ответ да есть.
если запустить 1С
клиент и настроить подключение к текущему кластеру 1С
и базе на нем, то будет ли произведено подключение?
Нажимаю на «Конфигуратор
»
и подключение успешно к базе
Шаг №8: Все выше заработало, т.к. у меня сервисы на обоих серверах запускаются от имени групповой системной учетной записью, по сути у нее права как у системы.
На заметку: У меня кластер 1С
не лицензионный, а в рамках тестовой площадки был крякнутый и найден на просторах интернета.
Итого: Я разобрал, как связать кластер 1с
и сервер базы данных не указываю каждый раз пароль на учетную запись sa
. К тому же не раскрываю ее пароль для сотрудников и главное 1С
-администраторов.
Заметка работоспособна. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.