Panduan keamanan dan izin untuk SQL Server on Linux

Artikel ini menjelaskan akun layanan yang diperlukan, dan izin sistem file untuk SQL Server di Linux. Untuk informasi selengkapnya tentang izin SQL Server di Windows, lihat Mengonfigurasi akun dan izin layanan Windows.

Prinsipal Windows bawaan

Meskipun SQL Server on Linux berjalan di bawah akun sistem operasi mssql, prinsipal Windows berikut ada di lapisan SQL Server untuk kompatibilitas. Jangan hapus atau tolak kecuali Anda sepenuhnya memahami risikonya.

Kepala Sekolah Peran bawaan SQL Server Rincian
BUILTIN\Administrators administrator sistem Memetakan ke administrator tingkat root dari host. Objek sistem tertentu berjalan dalam konteks akun ini.
NT AUTHORITY\SYSTEM public Pengidentifikasi keamanan (SID) yang dicadangkan untuk akun WindowsSYSTEM. Tetap dibuat agar skrip lintas platform yang mengharapkannya berhasil.
NT AUTHORITY\NETWORK SERVICE Tidak ada (hanya kompatibilitas) Secara historis akun startup default untuk beberapa layanan SQL Server di Windows. Hanya ada untuk kompatibilitas ke belakang. Tidak digunakan oleh SQL Server on Linux Database Engine itu sendiri.

Kepemilikan file dan direktori

mssql Pengguna dan mssql grup (mssql:mssql) harus memiliki semua file di bawah /var/opt/mssql folder, dengan akses baca dan tulis untuk keduanya. Jika Anda mengubah umask default (0022) atau menggunakan titik mount alternatif, Anda harus menerapkan kembali izin ini secara manual.

Izin default untuk mssql folder adalah sebagai berikut:

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/

Izin default untuk konten mssql folder adalah sebagai berikut:

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/

Untuk informasi selengkapnya tentang cara mengubah lokasi data pengguna, lokasi file log, atau database sistem dan lokasi log, lihat Mengonfigurasi SQL Server di Linux dengan alat mssql-conf.

Direktori SQL Server umum

Kegunaan Jalur default Rincian
Database sistem dan pengguna /var/opt/mssql/data Termasuk master, model, tempdb, dan database baru apa pun kecuali mssql-conf mengalihkannya. Untuk informasi selengkapnya, lihat Mengubah lokasi default untuk database sistem.
Log transaksi (jika dipisahkan) /var/opt/mssql/data, atau jalur yang diatur melalui mssql-conf set filelocation.defaultlogdir. Pertahankan kepemilikan yang sama jika Anda memindahkan log transaksi. Untuk informasi selengkapnya, lihat Mengubah lokasi direktori data atau log default.
Backups /var/opt/mssql/data Buat dan atur dengan chown sebelum pencadangan pertama, atau saat memetakan volume atau direktori. Untuk informasi selengkapnya, lihat Mengubah lokasi direktori cadangan default.
Log kesalahan dan log Extended Event (XE) /var/opt/mssql/log Juga menjadi host sesi XE kesehatan sistem default. Untuk informasi selengkapnya, lihat Mengubah lokasi direktori file log kesalahan default.
Pembuangan memori /var/opt/mssql/log Menyimpan dump inti dan DBCC CHECK* dump. Untuk informasi selengkapnya, lihat Mengubah lokasi direktori cadangan default.
Rahasia keamanan /var/opt/mssql/secrets Menyimpan item seperti sertifikat TLS dan kunci master kolom.

Peran SQL Server minimum untuk setiap agen

Agen Dijalankan sebagai (Linux) Menyambungkan ke Hak akses/peran yang diperlukan pada database
Agen Snapshot mssql (melalui pekerjaan Agen SQL) Distributor db_owner dalam database distribusi; akses baca/tulis pada folder snapshot
Agen Pembaca Log mssql Penerbit dan Distributor db_owner dalam database dan distribusi publikasi. Mungkin perlu sysadmin saat menggunakan inisialisasi dari backup
Agen Distribusi (dorong) mssql Distributor ke Pelanggan db_owner dalam distribusi; db_owner dalam database langganan. Membaca folder rekam jepret. Anggota PAL.
Agen Distribusi (penarikan) mssql (pada Pengguna) Pelanggan ke Distributor
Distributor ke Pelanggan
Sama seperti Agen Distribusi (push), tetapi izin berbagi snapshot berlaku pada host Subscriber.
Agen Penggabung mssql Penerbit, Distributor, Pelanggan db_owner dalam distribusi. Anggota PAL. Membaca folder rekam jepret. Membaca/menulis dalam publikasi & basis data langganan.
Agen Pembaca Antrean mssql Distributor db_owner dalam distribusi. Terhubung ke Publisher dengan db_owner pada database publikasi.

Praktik terbaik

Pengguna mssql dan grup yang digunakan SQL Server secara default adalah akun non-login. Pertahankan seperti itu demi keamanan. Gunakan Windows authentication untuk SQL Server on Linux jika memungkinkan. Untuk informasi selengkapnya tentang cara mengonfigurasi autentikasi Windows untuk SQL Server di Linux, lihat Tutorial: Menggunakan adutil untuk mengonfigurasi autentikasi Direktori Aktif dengan SQL Server di Linux.

Batasi izin file lebih lanjut (menggunakan perintah chmod 700) setiap kali direktori tidak memerlukan akses grup.

Saat mengikat direktori host atau share NFS ke dalam kontainer atau mesin virtual, buat terlebih dahulu, lalu petakan UID 10001 (default untuk mssql).

Hindari memberikan sysadmin ke login aplikasi. Gunakan peran granular sebagai gantinya dan EXECUTE AS pembungkus. Nonaktifkan atau ganti nama sa akun setelah Anda membuat akun sysadmin lain. Untuk informasi selengkapnya, lihat Menonaktifkan akun SA sebagai praktik terbaik.