Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, Red Hat Enterprise Linux (RHEL) tabanlı bir Security-Enhanced Linux (SELinux) dağıtımında SQL Server'ı sınırlı hizmet olarak kullanmaya başlama konusunda size yol gösterir.
Security-Enhanced Linux nedir?
Security-Enhanced Linux (SELinux), Linux sistemleri için bir güvenlik mimarisidir. Sistemdeki uygulamalar, işlemler ve dosyalar için erişim denetimleri tanımlamaya yardımcı olur. SELinux, erişilebilecek veya erişilmeyecekleri tanımlamak için bir dizi kural veya güvenlik ilkesi kullanır. SELinux, yöneticilere sisteme kimlerin erişebileceği üzerinde daha fazla denetim sağlar. Daha fazla bilgi için bkz. SELinux nedir (Security-Enhanced Linux).
Red Hat sistemleri için SELinux'un nasıl etkinleştirileceği hakkında ayrıntılı bilgi için bkz. SELinux Mimarisi. SeLinux özellikli bir işletim sistemini ücretsiz olarak kullanmaya da başlayabilirsiniz.
Linux üzerinde SQL Server 2022 resmi olarak RHEL 9 sertifikasına sahiptir (Temmuz 2024 itibarıyla) ve red hat ekosistem kataloğunda genel kullanıma sunulmuştur.
SQL Server ve SELinux
SELinux ile sınırlı hizmet , seLinux ilkesinde açıkça tanımlanan güvenlik kurallarıyla kısıtlandığı anlamına gelir. SQL Server için, SELinux özel ilkeleri pakette mssql-server-selinux tanımlanır.
Önkoşullar
SELinux
enforcingmodunda etkin olmalıdır. komutunusestatusçalıştırarak SELinux durumunu de kontrol edebilirsiniz.sestatusBeklenen çıktı budur.
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: 33mssql-server-selinuxGerekli özel ilkeleri tanımlayan paketi yükleyin.
Uyarı
Önkoşullardan herhangi biri karşılanmazsa, SQL Server tanımlanmamış bir hizmet olarak çalışır.
SQL Server'ı sınırlı hizmet olarak yükleme
Varsayılan olarak, mssql-server paket SELinux ilkesi olmadan SQL Server'ı yükler ve SQL Server tanımlanmamış bir hizmet olarak çalışır.
mssql-server Paket yüklemesi Boole'u selinux_execmode otomatik olarak etkinleştirir. Aşağıdaki komutu kullanarak SQL Server'ın tanımsız çalıştığını doğrulayabilirsiniz:
ps -eZ | grep sqlservr
Beklenen çıktı budur.
system_u:system_r:unconfined_service_t:s0 48265 ? 00:00:02 sqlservr
Paketi mssql-server-selinux yükledikten sonra, sqlservr sürecini sınırlayan özel bir SELinux ilkesini etkinleştirir. Bu ilkeyi selinuxuser_execmod yüklediğinizde Boole değeri sıfırlanır ve yeni etki alanındaki işlemi mssql sınırlayan sqlservr adlı mssql_server_tbir ilkeyle değiştirilir.
ps -eZ | grep sqlservr
Beklenen çıktı budur.
system_u:system_r:mssql_server_t:s0 48941 ? 00:00:02 sqlservr
SQL Server ve SELinux türleri
İsteğe bağlı SELinux ilkesi paketle birlikte mssql-server-selinux yüklendiğinde, bazı yeni türler tanımlanır:
| SELinux ilkesi | Açıklama |
|---|---|
mssql_opt_t |
mssql-server dosyalarını /opt/mssql konumuna yükle |
mssql_server_exec_t |
Yürütülebilir dosyalar /opt/mssql/bin/ adresinde |
mssql_paldumper_exec_t |
Çekirdek dökümlerini yönetmek için özel izinler gerektiren yürütülebilir dosyalar ve betikler |
mssql_conf_exec_t |
Yönetim aracı: /opt/mssql/bin/mssql-conf |
mssql_var_t |
Dosyalar için etiket /var/opt/mssql |
mssql_db_t |
/var/opt/mssql/data konumundaki veritabanı dosyaları için etiket |
Örnekler
Aşağıdaki örnekte SQL Server sınırlı hizmet olarak çalışırken veritabanı konumunu değiştirme işlemi gösterilmektedir.
İstediğiniz dizinleri oluşturun ve olarak
mssql_db_tetiketleyin.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/mydbkomutu
semanage fcontextSELinux dosya bağlam eşlemesini yönetir.-aparametresi yeni bir dosya bağlam kuralı ekler ve-tparametresi uygulanacak SELinux türünü tanımlar ve bu durumda SQL Server veritabanı dosyalarına yöneliktirmssql_db_t. Son olarak, bu örnekteki/opt/mydbyol deseni ve içindeki tüm dosyalar ve alt dizinler belirtilir.mssql-conf kullanarak varsayılan veritabanı konumunu ayarlayın ve kurulumu çalıştırın.
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /opt/mydb/data sudo systemctl restart mssql-serverTransact-SQL kullanarak yeni bir veritabanı oluşturarak doğrulayın:
CREATE DATABASE TestDatabase; GOYeni veritabanının uygun etiketlerle oluşturulduğunu doğrulayın.
sudo ls -lZ /opt/mydb/data/Beklenen çıktı budur.
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.mdfÖnceki örnekte, dosyanın, oluşturulan yeni dosyaların türü ile ilişkili olduğunu
mssql_db_tgörebilirsiniz.
İlgili içerik
- Linux üzerinde SQL Server için güvenlik sınırlamaları
- Linux üzerinde SQL Server'ın güvenlik özellikleri için kılavuzu
- Hızlı Başlangıç: SQL Server'ı yükleme ve Red Hat'de veritabanı oluşturma