Руководство по безопасности и правам для SQL Server на Linux

В этой статье описываются необходимые учетные записи служб и разрешения файловой системы для SQL Server в Linux. Дополнительные сведения о разрешениях SQL Server в Windows см. в разделе "Настройка учетных записей и разрешений службы Windows".

Встроенные принципы Windows

Хотя SQL Server на Linux выполняется в системной учетной записи mssql, следующие принципы Windows существуют на уровне SQL Server для обеспечения совместимости. Не удаляйте или не отклоняйте их, если вы не полностью понимаете риски.

Директор Роль SQL Server по умолчанию Details
BUILTIN\Administrators sysadmin Отображается с корневыми администраторами хоста. Некоторые системные объекты выполняются в контексте этой учетной записи.
NT AUTHORITY\SYSTEM public Идентификатор безопасности (SID), зарезервированный для учётной записи WindowsSYSTEM. Всё равно создано так, чтобы кроссплатформенные скрипты, ожидающие успеха.
NT AUTHORITY\NETWORK SERVICE Нет (только совместимость) Исторически учетная запись запуска по умолчанию для нескольких служб SQL Server в Windows. Присутствует только для обратной совместимости. Не используется sql Server в самом ядре СУБД Linux.

Владение файлами и каталогами

Пользователь и mssql группа (mssql:mssql) должны владеть всеми файлами в папке/var/opt/mssql, с доступом к mssql чтению и записи для обоих. Если вы измените стандартный umask (0022) или используете альтернативные точки крепления, вам придётся повторно применить эти права вручную.

Разрешения по умолчанию для mssql папки приведены следующим образом:

drwxr-xr-x  3 root  root  4096 May 14 17:17 ./
drwxr-xr-x 13 root  root  4096 Jan  7  2025 ../
drwxrwx---  7 mssql mssql 4096 May 14 17:17 mssql/

Разрешения по умолчанию для содержимого mssql папки приведены следующим образом:

drwxrwx--- 7 mssql mssql 4096 May 14 17:17 ./
drwxr-xr-x 3 root  root  4096 May 14 17:17 ../
drwxr-xr-x 5 mssql mssql 4096 May 14 17:17 .system/
drwxr-xr-x 2 mssql mssql 4096 May 14 17:17 data/
drwxr-xr-x 3 mssql mssql 4096 Sep 16 22:57 log/
-rw-r--r-- 1 root  root    85 May 14 17:17 mssql.conf
drwxrwxr-x 2 mssql mssql 4096 May 14 17:17 secrets/
drwxr-xr-x 2 mssql mssql 4096 May 14 17:17 security/

Дополнительные сведения о том, как изменить расположение данных пользователя, расположение файла журнала или системную базу данных и расположения журналов, см. в разделе "Настройка SQL Server в Linux" с помощью средства mssql-conf.

Типичные каталоги SQL Server

Purpose Путь по умолчанию Details
Системные и пользовательские базы данных /var/opt/mssql/data Включает master, model, tempdb и любые новые базы данных, если они не перенаправляются mssql-conf. Дополнительные сведения см. в разделе "Изменение расположения по умолчанию для системных баз данных".
Журналы транзакций (если разделены) /var/opt/mssql/data или путь, заданный через mssql-conf set filelocation.defaultlogdir. При перемещении журналов транзакций сохраните то же право владения. Дополнительные сведения см. в разделе «Изменение расположения каталога данных или журнала по умолчанию».
Backups /var/opt/mssql/data Создайте и выполните установку с chown перед первым резервным копированием или при отображении тома или каталога. Дополнительные сведения см. в разделе "Изменение расположения каталога резервного копирования по умолчанию".
Журналы ошибок и журналы расширенных событий (XE) /var/opt/mssql/log Также размещена стандартная сессия XE по состоянию здоровья системы. Дополнительные сведения см. в разделе "Изменение расположения файла журнала ошибок по умолчанию".
Дампы памяти /var/opt/mssql/log Хранит основные дампы и DBCC CHECK* дампы. Дополнительные сведения см. в разделе "Изменение расположения каталога дампа по умолчанию".
Секреты безопасности /var/opt/mssql/secrets Хранит такие элементы, как сертификаты TLS и главные ключи столбцов.

Минимальные роли SQL Server для каждого агента

Агент Выполняется в среде (Linux) подключается к Обязательные роли и права базы данных
Агент снимков mssql (с помощью задания агента SQL) Распространитель db_owner в распределённой базе данных; чтение и запись в папке моментальных снимков
Агент чтения журналов mssql Издатель и Дистрибьютор db_owner в базе данных публикации и распространении. Возможно, понадобится системное админирование при использовании initialize из резервного копирования
Агент распределения (push) mssql Распространитель к абоненту db_owner в распределении; db_owner в базе данных подписки. Чтение папки моментальных снимков. Член PAL.
Агент распространителя (вытягивание) mssql (на подписчике) Подписчик к распространителю
Распространитель к абоненту
То же, что и агент распространения (push), но разрешения на общую папку моментальных снимков применяются на хосте подписчика.
Агент слияния mssql Издатель, Дистрибьютор, Подписчик db_owner в распределенной системе. Член PAL. Чтение папки моментальных снимков. Чтение и запись в базах данных публикаций и подписок.
Агент обработки очереди. mssql Распространитель db_owner в распределенной системе. Подключается к Publisher с помощью db_owner в базе данных публикации.

Лучшие практики

mssql Пользователь и группа, используемые SQL Server, по умолчанию являются аккаунтами без входа. Оставите так ради безопасности. Используйте проверка подлинности Windows for SQL Server на Linux, где это возможно. Дополнительные сведения о настройке проверки подлинности Windows для SQL Server на Linux см. в учебном пособии: использование adutil для настройки проверки подлинности Active Directory с SQL Server на Linux.

Дополнительно ограничьте разрешения файла (с помощью команды chmod 700) всякий раз, когда каталогу не нужен доступ к группе.

При привязке каталогов хостов или NFS-ресурсов в контейнеры или виртуальные машины сначала создайте их, а затем отображайте UID 10001 (по умолчанию для mssql).

Избегайте предоставления sysadmin для учетных записей приложений. Вместо этого используйте детализированные роли и EXECUTE AS оболочки. Отключите или переименуйте sa аккаунт после создания нового аккаунта системного администратора . Дополнительные сведения см. в разделе "Отключить учетную запись SA" в качестве рекомендации.