Поделиться через


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

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

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

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

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

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

Все файлы в папке /var/opt/mssql должны принадлежать mssql пользователю и mssql группе (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

Цель Путь по умолчанию Сведения
Системные и пользовательские базы данных /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) Distributor db_owner в распределённой базе данных; чтение и запись в папке моментальных снимков
Агент чтения журналов mssql Издатель и распространитель db_owner в базе данных публикации и распространении. Может потребоваться sysadmin при использовании инициализации из резервного копирования
Агент распределения (push) mssql Распространитель к абоненту db_owner в распределении; db_owner в базе данных подписки. Чтение папки моментальных снимков. Член PAL.
Агент распространителя (вытягивание) mssql (на подписчике) Подписчик к распространителю
Распространитель к подписчику
Такой же, как агент распространения (push), но разрешения общей папки моментальных снимков применяются на хосте подписчика
Агент слияния mssql Издатель, распространитель, подписчик db_owner в распределенной системе. Член PAL. Чтение папки снимков. Чтение и запись в базах данных публикаций и подписок.
Агент чтения очередей mssql Distributor db_owner в распределенной системе. Подключается к издателю с db_owner в базе данных публикации.

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

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

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

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

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