Развертывание баз данных экземпляров компонентов
Сервис Подписи, Центр Идентификации, Сервис Аудита, Сервис Обработки Документов и модуль аутентификации 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(Заполняется, если отключена автоматическая попытка определения типа аутентификации)BeginUseEmptyDatabaseName(Заполняется, если требуется заполнить имя БД для экземпляра самостоятельно, либо экземпляр создается повторно на одном сервере)ServerNameServiceAccountNameSkipCreateLoginSkipValidation(Устанавливается в случае нестандартных размещений SQL. Например, домен Windows и SQL-аутентификация)UseExistingDBUseNetworkService
Параметры для SQL-аутентификации
AccountType(если отключена автоматическая попытка определения типа аутентификации)AsUserAsUserPasswordBeginUseEmptyDatabaseName(Заполняется, если требуется заполнить имя БД для экземпляра самостоятельно, либо экземпляр создается повторно на одном сервере)ServerNameServiceAccountNameServiceAccountPasswordSkipCreateLoginSkipValidation(Устанавливается в случае нестандартных размещений SQL. Например, домен Windows и SQL-аутентификация)UseExistingDB
Параметры при обновлении экземпляров DSS
Обновление экземпляров DSS их баз данных производится при помощи командлетов
Update-Dss...Instance(в зависимости от экземпляра компонента). При этом указанные ниже параметры должны быть переданы в
параметр -ConnectionInfo. Параметры заполняются при помощи командлетов
New-DssSql...ConnectionInfo (в зависимости от экземпляра компонента).
AsUser- если была настроена SQL-аутентификацияAsUserPassword- если была настроена SQL-аутентификацияCreateBackUpRepairDatabaseChecksumsRestoreAccessModeAfterErrorSkipValidation(Устанавливается в случае нестандартных размещений SQL. Например, домен Windows и SQL-аутентификация)TraceLogPathUseExclusiveAccessMode
Параметры при удалении экземпляров 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"