Bagikan melalui


SQL Server di Linux - Panduan keamanan dan izin

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 di Linux berjalan di bawah mssql akun sistem operasi, 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 Detail lebih lanjut
BUILTIN\Administrators sysadmin Memetakan ke administrator root dari host. Objek sistem tertentu berjalan dalam konteks akun ini.
NT AUTHORITY\SYSTEM public Pengidentifikasi layanan (SID) dicadangkan untuk akun Windows SYSTEM . Tetap dibuat agar skrip lintas platform yang mengharapkannya dapat berhasil.
NT AUTHORITY\NETWORK SERVICE sysadmin (tidak ada peran tetap) Secara historis akun startup default untuk beberapa layanan SQL Server di Windows. Hanya ada untuk kompatibilitas ke belakang. Tidak digunakan oleh SQL Server di Linux Database Engine itu sendiri.

Kepemilikan file dan direktori

Semua file di bawah folder /var/opt/mssql harus dimiliki oleh mssql pengguna, dan mssql grup (mssql:mssql), dengan akses baca dan tulis untuk keduanya. Jika Anda mengubah umask default (0022), atau menggunakan titik pemasangan 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

Tujuan Jalur default Detail lebih lanjut
Database sistem dan pengguna /var/opt/mssql/data Termasuk master, model, tempdb, dan database baru mana 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 menyelenggarakan sesi XE kesehatan sistem bawaan. Untuk informasi selengkapnya, lihat Mengubah lokasi direktori file log kesalahan default.
Pembuangan memori /var/opt/mssql/log Digunakan untuk core dump dan DBCC CHECK* dump. Untuk informasi selengkapnya, lihat Mengubah lokasi direktori cadangan default.
Rahasia keamanan /var/opt/mssql/secrets Menyimpan sertifikat TLS, kunci master kolom, dll.

Peran SQL Server minimum untuk setiap agen

Agen Dijalankan sebagai (Linux) Menyambungkan ke Hak akses/peran yang diperlukan pada database
Agen Cuplikan mssql (melalui pekerjaan Agen SQL) Pendistribusi 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 ketika menggunakan inisialisasi dari cadangan
Agen Distribusi (dorong) mssql Distributor ke Pelanggan db_owner dalam distribusi; db_owner dalam database langganan. Membaca folder rekam jepret. Anggota PAL.
Agen Distribusi (tarik) mssql (pada Pengguna) Pelanggan ke Distributor
Distributor ke Pelanggan
Sama seperti Agen Distribusi (push), tetapi izin berbagi snapshot berlaku di host Pelanggan.
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 Pendistribusi db_owner dalam distribusi. Menyambungkan ke Publisher dengan db_owner dalam database publikasi.

Praktik terbaik

Pengguna mssql dan grup yang digunakan oleh SQL Server adalah akun non-login secara default, dan harus disimpan seperti itu. Untuk tujuan keamanan, gunakan autentikasi Windows untuk SQL Server di 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 berbagi NFS ke dalam kontainer atau komputer virtual, buatlah terlebih dahulu, kemudian petakan UID 10001 (sebagai standar 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.