Развертывание баз данных экземпляров компонентов
Сервис Подписи, Центр Идентификации, Сервис Аудита, Сервис Обработки Документов и модуль аутентификации myDSS для своей работы требуют подключения к базам данных на SQL-сервере. Базы данных создаются при разворачивании экземпляров компонентов:
- Центр Идентификации - командлет New-DssStsInstance,
- Сервис Подписи - командлет New-DssSignServerInstance,
- Сервис Аудита - командлет New-DssAnalyticsServiceInstance,
- Сервис Обработки Документов - командлет New-DssDocumentStoreInstance,
- Модуль аутентификации myDSS:
- Сервис взаимодействия с ЦИ - командлет New-MyDssServerInternalInstance
- Сервис взаимодействия с мобильным приложением myDSS - командлет New-MyDssServerExternalInstance,
При этом существует два варианта размещения базы данных экземпляра компонента:
- Локально - на том же сервере, что и экземпляр компонента;
- Удаленно - на SQL-сервере размещенном на другом сервере.
Также в этом разделе:
- Права доступа к удаленному SQL-серверу
- Настройка параметров подключения к SQL-серверу
- Развертывание экземпляров DSS в кластере
- Примеры создания экземпляров DSS с настройкой подключения к БД
Локальный SQL-сервер
При разворачивании экземпляров DSS на локальном SQL-сервере в командлетах
New-Dss...Instance
достаточно указать имя SQL-сервера в параметре -SQLServerName
.
Пример:
New-DssSignServerInstance -SiteName "Default Web Site" -ApplicationName SignServer -SQLServerName “.\SQLEXPRESS” –DisplayName SignServer
При этом для возможности подключения экземпляров компонентов DSS к SQL будут созданы следующие учетные данные на SQL-сервере:
- Логин на уровне веб-сервера (соответствует имени пула приложений на IIS)
- Логин на уровне БД (соответствует имени пула приложений на IIS)
Указанные учетные данные совпадают с именем пула приложений на IIS. Например,
IIS AppPool/CryptoProDSS-1-STS
.
Примечание
Администратор DSS, который разворачивает экземпляры компонентов, на SQL-сервере должен обладать следующими правами:
- dbcreator,
- securityadmin.
Удаленный SQL-сервер
При разворачивании экземпляров DSS на удаленном SQL-сервере вначале необходимо выбрать схему аутентификации:
Примечание
Управление доступом на уровне домена позволяет упростить администрирование учетных записей. По возможности рекомендуется использовать аутентификацию Windows.
От типа выбранной аутентификации зависит набор параметров подключения к БД.
Windows-аутентификация
Примечание
При аутентификации на удаленном SQL-сервере по учетным данным Windows сервера с экземплярами DSS и SQL-сервера должны находиться в одном домене Windows.
В случае аутентификации на удаленном SQL-сервере по учетным данным Windows, необходимо перед разворачиванием создать для экземпляров DSS учетные записи в домене.
Примечание
Рекомендуется использовать gMSA (Group Managed Service Accounts)
для учетных
данных экземпляров в домене.
Разворачивание экземпляров DSS с Windows-аутентификацией на удаленном SQL-сервере
производится при помощи командлета New-Dss...Instance
(в зависимости от экземпляра
компонента). При этом необходимо использовать параметр -ConnectionInfo
, в который
нужно передать параметры подключения к БД. Эти параметры заполняются при помощи
командлета New-DssSql...ConnectionInfo
(в зависимости от экземпляра компонента).
Внимание!
Необходимо учитывать наличие у Администратора DSS прав доступа к SQL-серверу.
Описание структуры SqlConnectionInfo
Параметры при создании экземпляра DSS с Windows-аутентификацией
SQL-аутентификация
Разворачивание экземпляров DSS с Windows-аутентификацией на удаленном SQL-сервере
производится при помощи командлета New-Dss...Instance
(в зависимости от экземпляра
компонента). При этом необходимо использовать параметр -ConnectionInfo
, в который
нужно передать параметры подключения к БД. Эти параметры заполняются при помощи
командлета New-DssSql...ConnectionInfo
(в зависимости от экземпляра компонента).
После выполнения командлета New-Dss...Instance
на SQL-сервере будут созданы
учетные записи с указанными данными.
Внимание!
Необходимо учитывать наличие у Администратора DSS прав доступа к SQL-серверу.
Описание структуры SqlConnectionInfo
Параметры при создании экземпляра DSS с SQL-аутентификацией
Перед использованием командлетов в консоли PowerShell необходимо задать учетные данные Администратора
DSS для подключения к SQL-серверу. Учетные данные передаются через параметры $DssAdmin
, $DssAdminPwd
.
Права доступа к удаленному SQL-серверу
Если у Администратора DSS есть права dbcreator
и securityadmin
на удаленном
SQL-сервере, то разворачивание экземпляров DSS и их БД производится как это описано выше для
Windows-аутентификации и SQL-аутентификации.
Если у Администратора DSS нет прав dbcreator
и securityadmin
, то разворачивание
экземпляров DSS и их БД состоит из следующих шагов:
- Администратор SQL-сервера создает заготовки БД на SQL-сервере. При этом необходимо создать на уровне SQL-сервера следующее:
- логин для Администратора DSS. Администратор
DSS должен быть включен в роль
db_owner
в созданных заготовках БД. - логины для экземпляров DSS.
Имена БД по умолчанию представлены в таблице ниже.
Компонент DSS | Имя БД по умолчанию |
---|---|
Сервис Аудита | AnalyticsServiceDB |
Сервис Обработки Документов | DocumentStoreDB |
Сервис Обработки Операций* | DssOperationsDb |
Центр Идентификации | IdentityServiceDB |
Сервис взаимодействия с мобильным приложением myDSS | MyDssServerExternalDB |
Сервис взаимодействия с ЦИ (myDSS) | MyDssServerInternalDB |
Сервис Подписи** | SignatureServerCommonDB |
Сервис Подписи | SignatureServerDB |
Примечание
*Сервис Операций входит в состав и Сервиса Подписи, и Центра Идентификации. Соответственно,
данная БД требуется в одном экземпляре для обоих компонентов.
**Сервис Подписи имеет 2 базы данных: SignatureServerCommonDB
имеет фиксированное имя
и будет использоваться всеми развернутыми экземплярами Сервиса Подписи. Имена остальных БД
можно изменять, оповестив об этом Администратора DSS.
Администратор DSS создает экземпляры DSS с указанием имени БД и параметров подключения к ней. При этом необходимо указать флаг
BeginUseEmpty
. Если БД создавалась не с именем по умолчанию, в параметрах подключения также необходимо заполнить параметрDatabaseName
.Администратор DSS включает учетные данные экземпляров DSS в роли соответствующих баз данных. Для этого необходимо выполнить следующие действия:
- Создать на SQL-сервере пользователей SQL для экземпляров DSS в соответствующих БД.
- Созданных пользователей включить в роли соответствующих БД.
Имена ролей приведены в таблице ниже.
Компонент DSS | Имя роли |
---|---|
Сервис Аудита | auditinstance |
Сервис Обработки Документов | documentstoreserverinstance |
Сервис Операций* | operationmanager |
Центр Идентификации | identityserverinstance |
Сервис взаимодействия с мобильным приложением myDSS | mydssserverexternalinstance |
Сервис взаимодействия с ЦИ (myDSS) | mydssserverinstance |
Сервис Подписи** | signserverinstance |
Примечание
*Сервис Операций входит в состав и Сервиса Подписи, и Центра Идентификации. Соответственно, в роль необходимо включать обе их учетные записи.
**Сервис Подписи имеет 2 базы данных: SignatureServerCommonDB
и SignatureServerDB
. Соответственно,
учетную запись экземпляра необходимо включать в нужную роль в каждой из этих БД.
Настройка параметров подключения к SQL-серверу
Для указания параметров подключения к SQL-серверу при разворачивании экземпляров DSS
необходимо использовать командлеты New-Dss...SqlConnectionInfo
.
Параметр | Тип | Описание |
---|---|---|
AccountType |
string | Тип аутентификации в экземпляре SQL сервера для учетной записи, от имени которой будет выполняться подключение к БД: AutoDetect - автоматическая попытка определения типа аутентификации (по умолчанию)SqlAccount - SQL-аутентификацияWindows - Windows-аутентификация. Если DSS неверно определил тип аутентификации, необходимо использовать параметр SkipValidation . |
AsUser |
string | (Только при SQL-аутентификации) Имя учетной записи Администратора DSS на SQL-сервере. |
AsUserPassword |
string | (Только при SQL-аутентификации) Пароль учетной записи Администратора DSS на SQL-сервере. |
BeginUseEmpty |
switch | Использовать существующую пустую БД. Используется, если БД создавалась заранее. |
CreateBackUp |
switch | Создавать резервную копию базы данных перед обновлением экземпляров DSS. |
DatabaseName |
string | Название базы данных. |
RepairDatabaseChecksums |
switch | Восстановить контрольные суммы при обновлении экземпляров DSS. |
RestoreAccessModeAfterError |
switch | Будет ли БД возвращена в MULTI_USER режим после обновления. |
ServerName |
string | Адрес экземпляра SQL-сервера, на котором следует развернуть базу данных. |
ServiceAccountName |
string | Имя учетной записи экземпляра DSS. |
ServiceAccountPassword |
string | Пароль учетной записи экземпляра DSS. При использовании gMSA необходимо указывать значение ~ . |
SkipCreateLogin |
switch | Не создавать логин (пользователя) в БД. При наличии данного параметра данные, указанные в ServiceAccountName и ServiceAccountPassword , будут применяться только для аутентификации пользователя с существующими учетными данными. |
SkipValidation |
switch | Не определять автоматически способ аутентификации на SQL-сервере. |
TraceLogPath |
string | Путь к журналам обновления базы данных (на сервере, где разворачивается экземпляр DSS). |
UseExclusiveAccessMode |
switch | Будет ли БД переведена в SINGLE_USER режим на время обновления. |
UseExistingDB |
bool | Использовать существующую базу данных. Используется при разворачивании дополнительных экземпляров DSS в кластере. |
UseNetworkService |
switch | (Только при удаленной Windows-аутентификации) Использовать учетную запись Network Service в качестве учетной записи экземпляра, если нет возможности создать учетные записи в домене Windows или использовать gMSA . |
Параметры для Windows-аутентификации
AccountType
(Заполняется, если отключена автоматическая попытка определения типа аутентификации)BeginUseEmpty
DatabaseName
(Заполняется, если требуется заполнить имя БД для экземпляра самостоятельно, либо экземпляр создается повторно на одном сервере)ServerName
ServiceAccountName
SkipCreateLogin
SkipValidation
(Устанавливается в случае нестандартных размещений SQL. Например, домен Windows и SQL-аутентификация)UseExistingDB
UseNetworkService
Параметры для SQL-аутентификации
AccountType
(если отключена автоматическая попытка определения типа аутентификации)AsUser
AsUserPassword
BeginUseEmpty
DatabaseName
(Заполняется, если требуется заполнить имя БД для экземпляра самостоятельно, либо экземпляр создается повторно на одном сервере)ServerName
ServiceAccountName
ServiceAccountPassword
SkipCreateLogin
SkipValidation
(Устанавливается в случае нестандартных размещений SQL. Например, домен Windows и SQL-аутентификация)UseExistingDB
Параметры при обновлении экземпляров DSS
Обновление экземпляров DSS их баз данных производится при помощи командлетов
Update-Dss...Instance
(в зависимости от экземпляра компонента). При этом указанные ниже параметры должны быть переданы в
параметр -ConnectionInfo
. Параметры заполняются при помощи командлетов
New-DssSql...ConnectionInfo
(в зависимости от экземпляра компонента).
AsUser
- если была настроена SQL-аутентификацияAsUserPassword
- если была настроена SQL-аутентификацияCreateBackUp
RepairDatabaseChecksums
RestoreAccessModeAfterError
SkipValidation
(Устанавливается в случае нестандартных размещений SQL. Например, домен Windows и SQL-аутентификация)TraceLogPath
UseExclusiveAccessMode
Параметры при удалении экземпляров DSS
Удаление экземпляров DSS их баз данных производится при помощи командлетов
Remove-Dss...Instance
(в зависимости от экземпляра компонента). При этом указанные ниже параметры должны быть переданы в
параметр -ConnectionInfo
. Параметры заполняются при помощи командлетов
New-DssSql...ConnectionInfo
(в зависимости от экземпляра компонента).
AsUser
- если была настроена SQL-аутентификацияAsUserPassword
- если была настроена SQL-аутентификацияSkipValidation
(Устанавливается в случае нестандартных размещений SQL. Например, домен Windows и SQL-аутентификация)
Развертывание экземпляров DSS в кластере
Если необходимо развернуть дополнительные экземпляры DSS на отдельном сервере,
то при заполнении параметров подключения к БД требуется указать имя существующей
базы данных основного экземпляра и указать параметр -UseExistingDB
.
Примеры создания экземпляров DSS с настройкой подключения к БД
# БД расположена на локальном сервере
New-DssSignServerInstance -SQLServerName .\SQLServer -DBName SignatureServerDb
# БД расположена на удаленном сервере
$connInfo = New-DssSqlConnectionInfo -ServerName .\SQLServer -DatabaseName SignatureServerDb -ServiceAccountName SignServerAccount
New-DssSignServerInstance -ConnectionInfo $connInfo -DisplayName SignServer -SiteName "Default Web Site"