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

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

Yerleşik Windows ilkeleri

SQL Server on Linux mssql işletim sistemi hesabı altında çalışıyor olsa da, uyumluluk için SQL Server katmanında aşağıdaki Windows sorumluları 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 Hiçbiri (yalnızca uyumluluk) 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 üzerinde SQL Server Database Engine 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 SQL Server on Linux 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 bir temsilci için minimum SQL Server rolleri

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ıncı 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ı (itme) 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
Distribution Agent (ittirme) ile aynı, ancak anlık görüntü paylaşım izinleri Abone konağına uygulanır
Birleştirme Aracısı mssql Publisher, 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 Yayın veritabanında db_owner ile Publisher'a bağlanır.

En iyi yöntemler

SQL Server tarafından kullanılan mssql kullanıcı ve grubu varsayılan olarak oturum açma hesabı değildir ve bu şekilde tutulmalıdır. Güvenlik amacıyla mümkün olduğunca SQL Server on Linux için Windows authentication kullanın. SQL Server on Linux için Windows authentication yapılandırma hakkında daha fazla bilgi için bkz. Tutorial: SQL Server on Linux 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.