Delen via


SQL Server in Linux - Handleiding voor beveiliging en machtigingen

In dit artikel worden de vereiste serviceaccounts en bestandssysteemmachtigingen voor SQL Server in Linux beschreven. Zie Windows-serviceaccounts en -machtigingen configureren voor meer informatie over SQL Server voor Windows-machtigingen.

Ingebouwde Windows-principals

Hoewel SQL Server op Linux wordt uitgevoerd onder het mssql besturingssysteemaccount, bestaan de volgende Windows-principals op de SQL Server-laag voor compatibiliteit. Verwijder ze niet of weiger ze alleen als u de risico's volledig begrijpt.

Schoolleider Standaard SQL Server-functie Bijzonderheden
BUILTIN\Administrators sysadmin Wordt toegewezen aan de beheerders op hoofdniveau van de host. Bepaalde systeemobjecten worden uitgevoerd in de context van dit account.
NT AUTHORITY\SYSTEM public Service-ID (SID) gereserveerd voor het Windows-account SYSTEM. Nog steeds zo ontworpen dat platformoverschrijdende scripts verwachten dat ze slagen.
NT AUTHORITY\NETWORK SERVICE sysadmin (geen vaste rol) Historisch gezien het standaard opstartaccount voor verschillende SQL Server-services in Windows. Alleen aanwezig voor compatibiliteit met eerdere versies. Niet gebruikt door de SQL Server op Linux Database Engine zelf.

Eigendom van bestanden en mappen

Alle bestanden onder de map /var/opt/mssql moeten eigendom zijn van de mssql gebruiker en mssql groep (mssql:mssql), met lees- en schrijftoegang voor beide. Als u de standaard-umask (0022) wijzigt of alternatieve koppelpunten gebruikt, moet u deze machtigingen handmatig opnieuw toepassen.

De standaardmachtigingen voor de mssql map zijn als volgt:

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/

De standaardmachtigingen voor de inhoud van de mssql map zijn als volgt:

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/

Zie SQL Server configureren in Linux met het hulpprogramma mssql-conf voor meer informatie over het wijzigen van de locatie van gebruikersgegevens, de locatie van het logboekbestand of de systeemdatabase en logboeklocaties.

Typische SQL Server-directory's

Purpose Standaardpad Bijzonderheden
Systeem- en gebruikersdatabases /var/opt/mssql/data Omvat master, modelen tempdbeventuele nieuwe databases, tenzij mssql-conf ze omleidt. Zie De standaardlocatie voor systeemdatabases wijzigen voor meer informatie.
Transactielogboeken (indien gescheiden) /var/opt/mssql/dataof het pad dat is ingesteld via mssql-conf set filelocation.defaultlogdir. Houd hetzelfde eigendom als u transactielogboeken verplaatst. Zie De standaardgegevens- of logboekmaplocatie wijzigen voor meer informatie.
Backups /var/opt/mssql/data Maak en stel deze in met chown vóór de eerste back-up, of wanneer u een volume of map toewijst. Zie De standaardlocatie van de back-upmap wijzigen voor meer informatie.
Foutlogboeken en Extended Event (XE)-logboeken /var/opt/mssql/log Host ook de standaard XE-sessie voor systeemstatus. Zie De standaardlocatie van de map voor foutenlogboekbestanden wijzigen voor meer informatie.
Geheugendumps /var/opt/mssql/log Wordt gebruikt voor kerndumps en DBCC CHECK* dumps. Zie De standaardlocatie van de dumpmap wijzigen voor meer informatie.
Beveiligingsgeheimen /var/opt/mssql/secrets Slaat TLS-certificaten, kolomhoofdsleutels, enzovoort op.

Minimale SQL Server-functies voor elke agent

Vertegenwoordiger Wordt uitgevoerd als (Linux) Verbinding maken met Vereiste databaserollen/-rechten
Snapshotagent mssql (via SQL Agent-taak) Distributor db_owner in database voor distributie; lezen/schrijven in momentopnamenmap
Logboekleesagent mssql Uitgever en distributeur db_owner in de publicatiedatabase en distributie. Mogelijk heeft sysadmin nodig bij het gebruik van initialisatie vanuit een back-up
Distributieagent (push) mssql Distributeur naar abonnee db_owner in distributie; db_owner in abonnementsdatabase. Lees de map met momentopnames. PAL-lid.
Distributieagent ("pull") mssql (bij abonnee) Abonnee bij Distributeur
Distributeur naar abonnee
Hetzelfde als distributieagent (push), maar sharemachtigingen voor momentopnamen zijn van toepassing op abonneehost
Agent samenvoegen mssql Uitgever, distributeur, abonnee db_owner in distributienetwerk. PAL-lid. Snapshot-map lezen. Lezen/schrijven in publicatie- en abonnementsdatabases.
Agent voor wachtrijlezer mssql Distributor db_owner in distributie. Maakt verbinding met Publisher met db_owner in de publicatiedatabase.

Beste praktijken

De mssql gebruiker en groep die door SQL Server worden gebruikt, is standaard een niet-aanmeldingsaccount en moet op die manier worden bewaard. Gebruik waar mogelijk Windows-verificatie voor SQL Server in Linux voor beveiligingsdoeleinden. Zie zelfstudie: Adutil gebruiken om Active Directory-verificatie te configureren met SQL Server op Linux voor meer informatie over het configureren van Windows-verificatie voor SQL Server in Linux.

Beperk bestandsmachtigingen verder (met behulp van de opdracht chmod 700) wanneer de map geen groepstoegang nodig heeft.

Wanneer u hostmappen of NFS-shares koppelt aan containers of virtuele machines, maakt u deze eerst aan en wijst u vervolgens de UID 10001 toe (standaard voor mssql).

Vermijd het verlenen van sysadmin aan toepassingsaanmelding. Gebruik in plaats daarvan gedetailleerde rollen en EXECUTE AS wrappers. Schakel het account uit of wijzig de sa naam ervan zodra u een ander sysadmin-account hebt gemaakt. Zie Het SA-account uitschakelen als aanbevolen procedure voor meer informatie.