Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server в Linux
В этой статье приведен пример подготовки ключа компьютера для SQL Server, работающего в Linux, в автономной группе доступности(AG).
Содержащаяся группа доступности — это группа доступности, которая поддерживает:
Управление объектами метаданных (пользователями, именами входа, разрешениями, агент SQL Server заданиями и т. д.) на уровне группы доступности в дополнение к уровню экземпляра.
Специализированные системные базы данных в группе доступности.
Примеры в этой статье предназначены для SQL Server в контейнерах Linux, но можно использовать те же действия для SQL Server на Linux, запуска на физических машинах, виртуальных машинах и в развертывании на основе Kubernetes.
Внимание
Эти инструкции следует использовать только для содержащихся групп доступности. При настройке автономной группы доступности с общим ключом компьютера во всех репликах сначала убедитесь, что нет существующей иерархии шифрования (например, прозрачного шифрования данных, шифрования на уровне столбцов или любой другой функции, связанной с безопасностью, требующей управления ключами). Изменение ключа компьютера может нарушить шифрование и привести к потере данных. После настройки не создавайте или изменяйте иерархию шифрования по соображениям безопасности.
Обзор ключа компьютера
В SQL Server на Linux ключ компьютера играет важную роль в защите обмена данными и данными. В следующей таблице описаны основные функции.
| Функция | Описание |
|---|---|
| Шифрование и расшифровка | Ключ компьютера используется для шифрования и расшифровки данных, передаваемых между узлами в группе доступности. |
| Аутентификация | Это помогает в проверке подлинности взаимодействия между основными и вторичными репликами в группе доступности. |
| Безопасность | Ключ компьютера и связанные сертификаты должны быть защищены, чтобы предотвратить несанкционированный доступ |
При работе с SQL Server 2022 (16.x) в Linux и автономными группами доступности необходимо синхронизировать ключи компьютера между репликами SQL Server. Этот процесс позволяет использовать главный ключ службы (SMK) в автономной master базе данных для расшифровки и шифрования.
Подготовка контейнера SQL Server на автономном узле для запуска пользовательского ключа компьютера
В следующих инструкциях показано, как создать новый ключ компьютера в base64 формате.
Создайте файл ключа компьютера с помощью OpenSSL (в файл с именем
machine-key.bin) с помощью следующего скрипта.openssl rand -out machine-key.bin 44 printf '\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' | dd of=machine-key.bin bs=1 seek=0 count=12 conv=notrunc cat machine-key.bin | base64Предыдущий скрипт выполняет следующие действия:
- Создайте 44-байтовый двоичный файл
machine-key.bin, содержащий случайные данные. - Перезапись первых 12 байтов с фиксированным заголовком. Это может измениться в будущем.
- Кодируйте
machine-key.binвbase64формате и печатайте его в консоли.
- Создайте 44-байтовый двоичный файл
Запустите контейнер, включив файл к ключу компьютера контейнера SQL Server.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=yourpassword" -p 14331:1433 --name sqlcontainer --hostname sqlcontainer -v ~/machine-key.bin:/var/opt/mssql/secrets/machine-key -d mcr.microsoft.com/mssql/server:2022-latestУбедитесь, что
machine-key.binна хост-компьютере используетсяmachine-key.binконтейнер SQL Server, развернутый на предыдущем шаге.cat machine-key.bin | base64Пример выходных данных:
AQAAAAAAAAAAAAAA//////////////////////////////////////////8=В контейнере проверьте ключ. Сначала подключитесь к интерактивному терминалу в контейнере.
docker exec -it sqlcontainer "bash"Затем проверьте ключ.
cat machine-key | base64Пример выходных данных:
AQAAAAAAAAAAAAAA//////////////////////////////////////////8=
Вы можете использовать те же действия во всех развертываниях контейнеров SQL Server, которые вы планируете использовать в качестве реплик в автономной группе доступности. Необходимо использовать один и тот же ключ компьютера и не создавать разные ключи компьютера для каждого развертывания контейнеров SQL Server.