Дополнительная настройка СУБД MS SQL AlwaysOn с sql авторизацией
Опубликовано Виктор Боровик on 2023-07-19 10:48

Для корректной работы  продуктов Крипто-Про DSS, Крипто-Про УЦ требуется использование баз данных. В данном случе  - речь пойдет про  MS SQL и его  реализацию  отказоусточивой инфтраструктуры AlwaysON (группа доступности).

Как правило -  группы доступности  MS SQL разворачивают в доменной инфраструктуре (MS AD). Но встречаются случаи создания груп доступности  без доменной инфраструктуры с использованием  для авторизации учетных записей непосресдтвенно MS SQL  серверов. Редко - но встречаются.

В таком случае возникает необходимость в следующей дополнительной настройке серверов СУБД:

Для корректной   отработки отказа (failover)  необходимо скопировать  SID учетной  записи sql  для  приложений с первичного сервера на все остальные.

Пример:

Учетная запись для доступа приложений  в СУБД - 'dss-service' 

Используется 2 сервера СУБД - сервер А и сервер Б.

На каждом из серверов создана учетная запись 'dss-service'

На сервере А  выполняем sql запрос:

USE SignServer GO SELECT name, sid FROM sys.sysusers WHERE name = 'dss-service' GO
USE MASTER GO SELECT name, sid FROM sys.sql_logins WHERE name = 'dss-service' GO

Результатом запроса будет вывод вида:
name sid

dss-service 0x7C000501B11ACECC5577B728430001000501B1
 
На сервере Б  выполняем sql запрос:

USE SignServer GO SELECT name, sid FROM sys.sysusers WHERE name = 'dss-service' GO
USE MASTER GO SELECT name, sid FROM sys.sql_logins WHERE name = 'dss-service' GO

Результатом запроса будет вывод вида:
name sid

dss-service 0x7C0005003672AD2C95187BB032000100050036
 
Как видим SID пользователей раличаются. В данном случае при отработке отказа, при переходе мастер реплики с сервера А на сервер Б возникнут ошибки в работе приложения.

Решение:
На сервере Б удалить учетную запись 'dss-service':

DROP USER dss-service ; GO

Создать нового пользователя с заданным SID:
CREATE Login dss-service WITH password = 'VeryStrongPassword!123', SID = 0x7C000501B11ACECC5577B728430001000501B1

Это позволит избежать ошибок при отработке отказа в конфигурации MS AlwaysOn без доменной инфраструктуры.

(5 плюсик(ов))
Класс!
Не очень :(

Коментарии (0)