Aracılığıyla paylaş


Linux üzerinde SQL Server - Güvenlik ve izinler kılavuzu

Bu makalede Linux üzerinde SQL Server için gerekli hizmet hesapları ve dosya sistemi izinleri açıklanmaktadır. Windows üzerinde SQL Server izinleri hakkında daha fazla bilgi için bkz. Windows hizmet hesaplarını ve izinlerini yapılandırma.

Yerleşik Windows ilkeleri

Linux üzerinde SQL Server, mssql işletim sistemi kullanıcı hesabı altında çalışıyor olsa da, uyumluluk için SQL Server katmanında aşağıdaki Windows ilkeleri vardır. Riskleri tam olarak anlamadığınız sürece bunları kaldırmayın veya reddetmeyin.

Müdür Varsayılan SQL Server rolü Ayrıntılar
BUILTIN\Administrators sysadmin Ana bilgisayarın kök düzeyindeki yöneticilerine eşleştirir. Bazı sistem nesneleri bu hesap bağlamında çalışır.
NT AUTHORITY\SYSTEM public Windows SYSTEM hesabı için ayrılmış hizmet tanımlayıcısı (SID). Yine de, başarı sağlaması beklenen platformlar arası betiklerin çalışması için oluşturulmuştur.
NT AUTHORITY\NETWORK SERVICE sysadmin (sabit rol yok) Geçmişte Windows'da birkaç SQL Server hizmeti için varsayılan başlangıç hesabı. Yalnızca geriye dönük uyumluluk için sunulur. Linux Veritabanı Altyapısı'nda SQL Server tarafından kullanılmaz.

Dosya ve dizin sahipliği

Klasör /var/opt/mssql altındaki tüm dosyalar, mssql kullanıcısına ve mssql grubuna (mssql:mssql) ait olmalı ve her ikisi için de okuma ve yazma erişimine sahip olmalıdır. Varsayılan umask()0022 öğesini değiştirirseniz veya alternatif bağlama noktaları kullanırsanız, bu izinleri el ile yeniden uygulamanız gerekir.

Klasör için mssql varsayılan izinler aşağıdaki gibidir:

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/

Klasörün içeriği mssql için varsayılan izinler aşağıdaki gibidir:

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/

Kullanıcı veri konumunu, günlük dosyası konumunu veya sistem veritabanı ve günlük konumlarını değiştirme hakkında daha fazla bilgi için bkz. mssql-conf aracıyla Linux'ta SQL Server'ı yapılandırma.

Tipik SQL Server dizinleri

Amaç Varsayılan yol Ayrıntılar
Sistem ve kullanıcı veritabanları /var/opt/mssql/data master, model, tempdb ve mssql-conf bunları yeniden yönlendirmediği sürece tüm yeni veritabanlarını içerir. Daha fazla bilgi için bkz. Sistem veritabanları için varsayılan konumu değiştirme.
İşlem günlükleri (ayrılmışsa) /var/opt/mssql/data, veya mssql-conf set filelocation.defaultlogdir aracılığıyla ayarlanan yol. İşlem günlüklerini taşıdıktan sonra aynı sahipliği koruyun. Daha fazla bilgi için bkz. Varsayılan verileri veya günlük dizini konumunu değiştirme.
Yedeklemeler /var/opt/mssql/data İlk yedeklemeden önce veya bir birimi ya da dizini eşlerken, chown ile oluşturun ve ayarlayın. Daha fazla bilgi için bkz. Varsayılan yedekleme dizini konumunu değiştirme.
Hata günlükleri ve Genişletilmiş Olay (XE) günlükleri /var/opt/mssql/log Ayrıca varsayılan sistem durumu XE oturumunu da barındırıyor. Daha fazla bilgi için bkz. Varsayılan hata günlüğü dosyası dizin konumunu değiştirme.
Bellek dökümleri /var/opt/mssql/log Çekirdek dökümleri ve DBCC CHECK* dökümleri için kullanılmaktadır. Daha fazla bilgi için bkz. Varsayılan döküm dizini konumunu değiştirme.
Güvenlik sırları /var/opt/mssql/secrets TLS sertifikalarını, sütun ana anahtarlarını vb. depolar.

Her SQL Server Agent için asgari roller

Temsilci Farklı çalışır (Linux) Bağlanacak yer Gerekli veritabanı rolleri/hakları
Anlık Görüntü Aracısı mssql (SQL Agent işi aracılığıyla) Distributor Dağıtım veritabanında db_owner olarak; anlık görüntü klasöründe okuma/yazma yetkisine sahip olun.
Kayıt Okuyucu Aracısı mssql Yayımcı ve Dağıtımcı db_owner yayın veritabanı ve dağıtımında. Yedeklemeden başlat kullanılırken sysadmin gerekebilir
Dağıtım Aracısı (gönderme) mssql Dağıtımcıdan Aboneye Dağıtımda db_owner; Abonelik veritabanında db_owner. Anlık görüntü klasörünü oku. PAL üyesi.
Dağıtım Aracısı (çekme) mssql (Abonede) Abone Dağıtımcıya
Dağıtımcıdan Aboneye
Dağıtım Aracısı (gönderme) ile aynı, ancak anlık görüntü paylaşımı izinleri Abone sunucusunda uygulanır.
Birleştirme Aracısı mssql Yayımcı, Dağıtımcı, Abone Dağıtımda db_owner PAL üyesi. Anlık görüntü klasörünü oku. Yayın ve abonelik veritabanlarında okuma/yazma.
Kuyruk Okuyucu Ajanı mssql Distributor Dağıtımda db_owner. Publisher'a db_owner ile yayın veritabanına bağlanır.

En iyi yöntemler

mssql SQL Server tarafından kullanılan kullanıcı ve grup varsayılan olarak oturum açma hesabı değildir ve bu şekilde tutulmalıdır. Güvenlik amacıyla, mümkün olduğunca Linux üzerinde SQL Server için Windows kimlik doğrulamasını kullanın. Linux üzerinde SQL Server için Windows kimlik doğrulamasını yapılandırma hakkında daha fazla bilgi için bkz . Öğretici: Linux üzerinde SQL Server ile Active Directory kimlik doğrulamasını yapılandırmak için adutil kullanma.

Dizinin grup erişimine ihtiyacı olmadığında dosya izinlerini daha fazla kısıtlayın (komutunu chmod 700kullanarak).

Konak dizinlerini veya NFS paylaşımlarını kapsayıcılara veya sanal makinelere bağlarken, önce bunları oluşturun ve UID'yi eşleyin 10001 (için mssqlvarsayılan olarak).

Uygulama oturum açma bilgilerine sysadmin vermekten kaçının. Alternatif olarak ayrıntılı rolleri ve EXECUTE AS kaplayıcıları kullanın. Başka bir sa hesabı oluşturduktan sonra hesabı devre dışı bırakın veya yeniden adlandırın. Daha fazla bilgi için bkz. En iyi yöntem olarak SA hesabını devre dışı bırakma.