Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini membantu Anda memulai SQL Server sebagai layanan terbatas pada distribusi Security-Enhanced Linux (SELinux) berdasarkan Red Hat Enterprise Linux (RHEL).
Apa itu Security-Enhanced Linux?
Security-Enhanced Linux (SELinux) adalah arsitektur keamanan untuk sistem Linux. Ini membantu menentukan kontrol akses untuk aplikasi, proses, dan file pada sistem. SELinux menggunakan sekumpulan aturan, atau kebijakan keamanan, untuk menentukan apa yang dapat atau tidak dapat diakses. SELinux memberi administrator kontrol lebih besar atas siapa yang dapat mengakses sistem. Untuk informasi selengkapnya, lihat Apa itu SELinux (Security-Enhanced Linux).
Untuk detail tentang cara mengaktifkan SELinux untuk sistem Red Hat, lihat Arsitektur SELinux. Anda juga dapat memulai dengan sistem operasi yang mendukung SELinux secara gratis.
SQL Server 2022 di Linux secara resmi disertifikasi dengan RHEL 9 (per Juli 2024), dan sekarang tersedia secara umum di Red Hat Ecosystem Catalog.
SQL Server dan SELinux
Layanan terbatas dengan SELinux berarti bahwa layanan ini dibatasi oleh aturan keamanan, yang secara eksplisit didefinisikan dalam kebijakan SELinux. Untuk SQL Server, kebijakan kustom SELinux ditentukan dalam paket mssql-server-selinux.
Prasyarat
Aktifkan SELinux dan atur ke
enforcingmode. Periksa status SELinux dengan menjalankansestatusperintah .sestatusBerikut adalah output yang diharapkan.
SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Memory protection checking: actual (secure) Max kernel policy version: 33Instal paket
mssql-server-selinuxyang menentukan kebijakan kustom yang diperlukan.
Nota
Jika salah satu prasyarat tidak terpenuhi, SQL Server berjalan sebagai layanan tidak terkonfinisi.
Persyaratan minimum untuk versi minor RHEL
Untuk menjalankan SQL Server sebagai aplikasi terbatas pada RHEL 9, Anda harus menggunakan versi minor RHEL minimum. Persyaratan ini ada karena dependensi rilis titik dalam paket SELinux. Paket mssql-server-selinux , yang Anda butuhkan untuk menjalankan SQL Server dalam mode terbatas, tergantung pada selinux-policy paket dan selinux-policy-base .
Langkah-langkah untuk mengidentifikasi versi minimum minor RHEL
Tambahkan repositori SQL Server yang berisi
mssql-server-selinux.Untuk SQL Server 2025 (17.x) pada RHEL 9:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/9/mssql-server-2025.repoUntuk SQL Server 2022 (16.x) pada RHEL 9:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/9/mssql-server-2022.repoNota
Jika Anda berencana untuk menginstal pada RHEL 10, ubah ke repositori RHEL 10.
Jalankan perintah berikut untuk melihat dependensi kebijakan SELinux:
sudo dnf repoquery --requires --latest-limit=1 mssql-server-selinux | egrep '^selinux-policy(-base)?'Output mencakup versi kebijakan SELinux minimum yang diperlukan, yang ditunjukkan oleh akhiran seperti
.el9_6. Akhiran ini mewakili rilis minor RHEL 9 minimum yang dibuat kebijakannya. Misalnya,.el9_6sesuai dengan RHEL 9.6.Jika tidak ada akhiran seperti itu yang muncul pada keluaran, lihat dokumentasi Red Hat untuk menentukan versi minor RHEL minimum yang terkait dengan build kebijakan SELinux tersebut. Dalam contoh berikut, versi dasar SELinux yang diperlukan adalah
38.1.53-5.sudo dnf repoquery --requires --latest-limit=1 mssql-server-selinux | egrep '^selinux-policy(-base)?'Berikut adalah contoh output:
selinux-policy >= 38.1.53-5.el9_6 selinux-policy-base >= 38.1.53-5.el9_6Dalam contoh ini, persyaratan dengan tag versi minor tertinggi adalah
38.1.53-5.el9_6. Jadi, Anda memerlukan setidaknya RHEL 9.6 untuk menginstal SQL Server dengan SELinux (mssql-server-selinux), dan menjalankannya sebagai aplikasi terbatas pada RHEL 9.
Menginstal SQL Server sebagai layanan terbatas
Secara default, paket mssql-server menginstal SQL Server tanpa kebijakan SELinux, dan SQL Server berjalan sebagai layanan yang tidak terkonfinisi. Penginstalan paket mssql-server secara otomatis mengaktifkan selinux_execmode Boolean. Anda dapat memverifikasi bahwa SQL Server berjalan tanpa syarat menggunakan perintah berikut:
ps -eZ | grep sqlservr
Berikut adalah output yang diharapkan.
system_u:system_r:unconfined_service_t:s0 48265 ? 00:00:02 sqlservr
Ketika Anda menginstal paket mssql-server-selinux, kebijakan SELinux kustom yang membatasi proses sqlservr diaktifkan. Ketika Anda menginstal kebijakan ini, selinuxuser_execmod Boolean diatur ulang, dan digantikan oleh kebijakan bernama mssql. Kebijakan ini membatasi proses sqlservr dalam domain mssql_server_t yang baru.
ps -eZ | grep sqlservr
Berikut adalah output yang diharapkan.
system_u:system_r:mssql_server_t:s0 48941 ? 00:00:02 sqlservr
Jenis SQL Server dan SELinux
Saat Anda menginstal kebijakan SELinux opsional menggunakan mssql-server-selinux paket , itu menentukan beberapa jenis baru:
| Kebijakan SELinux | Deskripsi |
|---|---|
mssql_opt_t |
Menginstal file mssql-server ke /opt/mssql |
mssql_server_exec_t |
File yang dapat dieksekusi pada /opt/mssql/bin/ |
mssql_paldumper_exec_t |
Executable dan skrip yang memerlukan izin khusus untuk mengelola core dump |
mssql_conf_exec_t |
Alat manajemen di /opt/mssql/bin/mssql-conf |
mssql_var_t |
Label untuk berkas di /var/opt/mssql |
mssql_db_t |
Label untuk file database di /var/opt/mssql/data |
Contoh
Contoh berikut menunjukkan perubahan lokasi database saat SQL Server berjalan sebagai layanan terbatas.
Buat direktori yang diinginkan dan beri label sebagai
mssql_db_t.sudo mkdir -p /opt/mydb/ sudo chown mssql:mssql /opt/mydb sudo semanage fcontext -a -t mssql_db_t "/opt/mydb(/.*)?" sudo restorecon -R -v /opt/mydbPerintah
semanage fcontextmengelola pemetaan konteks file SELinux. Parameter-amenambahkan aturan konteks file baru, dan-tparameter menentukan jenis SELinux yang akan diterapkan, yang dalam hal ini adalahmssql_db_tuntuk file database SQL Server. Terakhir, perintah menentukan pola jalur, yang ada/opt/mydbdalam contoh ini, dan menyertakan semua file dan subdirektori di dalamnya.Atur lokasi database default menggunakan mssql-conf, dan jalankan penyiapan.
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /opt/mydb/data sudo systemctl restart mssql-serverVerifikasi dengan membuat database baru menggunakan Transact-SQL:
CREATE DATABASE TestDatabase; GOVerifikasi bahwa database baru dibuat dengan label yang sesuai.
sudo ls -lZ /opt/mydb/data/Berikut adalah output yang diharapkan.
total 16384 -rw-rw----. 1 mssql mssql system_u:object_r:mssql_db_t:s0 8388608 Aug 2 14:27 TestDatabase_log.ldf -rw-rw----. 1 mssql mssql system_u:object_r:mssql_db_t:s0 8388608 Aug 2 14:27 TestDatabase.mdfDalam contoh sebelumnya, Anda dapat melihat bahwa file memiliki jenis
mssql_db_tyang terkait dengan file-file baru yang dibuat.