Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk a Red Hat Enterprise Linuxon (RHEL) alapuló Security-Enhanced Linux (SELinux) disztribúció korlátozott szolgáltatásaként segíti az SQL Server használatát.
Mi az Security-Enhanced Linux?
Security-Enhanced Linux (SELinux) linuxos rendszerek biztonsági architektúrája. Segít meghatározni a rendszer alkalmazásainak, folyamatainak és fájljainak hozzáférés-vezérlését. A SELinux szabályok vagy biztonsági szabályzatokhasználatával határozza meg, hogy mit lehet vagy mit nem lehet elérni. A SELinux nagyobb ellenőrzést biztosít a rendszergazdák számára, hogy ki férhet hozzá a rendszerhez. További információ: What is SELinux (Security-Enhanced Linux).
A SELinux Red Hat-rendszerekhez való engedélyezéséről további információt SELinux Architecturecímű cikkben talál. Az SELinux-kompatibilis operációs rendszer ingyenes is használatba vehet.
SQL Server 2022 Linux rendszeren hivatalosan RHEL 9 minősítéssel rendelkezik (2024 júliusától), és mostantól általánosan elérhető a Red Hat Ecosystem Catalog.
SQL Server és SELinux
A SELinux mssql-server-selinux csomagban vannak definiálva.
Előfeltételek
Engedélyezze a SELinuxot, és állítsa be üzemmódba
enforcing. A parancs futtatásávalsestatusellenőrizze a SELinux állapotát.sestatusItt a várt kimenet.
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: 33Telepítse a szükséges egyéni szabályzatokat meghatározó
mssql-server-selinuxcsomagot.
Jegyzet
Ha valamelyik előfeltétel nem teljesül, az SQL Server nem definiált szolgáltatásként fut.
RHEL alverzió minimális követelménye
Ha az SQL Servert korlátozott alkalmazásként szeretné futtatni az RHEL 9-en, minimális RHEL-alverziót kell használnia. Ez a követelmény a SELinux-csomagok pont-kiadási függőségei miatt létezik. Az mssql-server-selinux csomag, amely a SQL Server korlátozott módban való futtatásához szükséges, a selinux-policy és selinux-policy-base csomagoktól függ.
Az RHEL-alverzió minimális verziójának azonosításának lépései
Adja hozzá az
mssql-server-selinux-t tartalmazó SQL Server-adattárat.AZ SQL Server 2025 (17.x) esetében az RHEL 9-en:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/9/mssql-server-2025.repoAZ SQL Server 2022 (16.x) esetében az RHEL 9-en:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/9/mssql-server-2022.repoJegyzet
Ha az RHEL 10-re tervezi telepíteni, váltson az RHEL 10-adattárakra.
Futtassa a következő parancsot a SELinux-szabályzat függőségeinek megtekintéséhez:
sudo dnf repoquery --requires --latest-limit=1 mssql-server-selinux | egrep '^selinux-policy(-base)?'A kimenet tartalmazza a szükséges minimális SELinux-szabályzatverziót, amelyet egy olyan utótag jelez, mint a
.el9_6. Ez az utótag azt a minimális RHEL 9-es kisebb kiadást jelöli, amelyhez a szabályzat készült. Például.el9_6az RHEL 9.6-nak felel meg.Ha a kimenetben nem jelenik meg ilyen utótag, tekintse meg a Red Hat dokumentációját a SELinux-szabályzat buildeléséhez társított minimális RHEL-alverzió meghatározásához. Az alábbi példában a szükséges SELinux alapverzió a következő
38.1.53-5.sudo dnf repoquery --requires --latest-limit=1 mssql-server-selinux | egrep '^selinux-policy(-base)?'Íme egy példakimenet:
selinux-policy >= 38.1.53-5.el9_6 selinux-policy-base >= 38.1.53-5.el9_6Ebben a példában a legmagasabb alverzió-címkézett követelmény az
38.1.53-5.el9_6. Ezért legalább RHEL 9.6-os verzióra van szüksége az SQL Server SELinux (mssql-server-selinux) használatával való telepítéséhez, és korlátozott alkalmazásként kell futtatnia az RHEL 9-en.
Az SQL Server telepítése korlátozott szolgáltatásként
Alapértelmezés szerint a mssql-server csomag seLinux-szabályzat nélkül telepíti az SQL Servert, az SQL Server pedig nem definiált szolgáltatásként fut. A mssql-server csomag telepítése automatikusan engedélyezi a selinux_execmode logikai értéket. Az alábbi paranccsal ellenőrizheti, hogy az SQL Server nem definiálva fut-e:
ps -eZ | grep sqlservr
Itt a várt kimenet.
system_u:system_r:unconfined_service_t:s0 48265 ? 00:00:02 sqlservr
A csomag telepítésekor mssql-server-selinux egy egyéni SELinux-szabályzatot tesz lehetővé, amely korlátozza a sqlservr folyamatot. A házirend telepítésekor a selinuxuser_execmod logikai érték alaphelyzetbe áll, és egy névvel ellátott mssqlszabályzat váltja fel. Ez a szabályzat az sqlservr új mssql_server_t tartományban korlátozza a folyamatot.
ps -eZ | grep sqlservr
Itt a várt kimenet.
system_u:system_r:mssql_server_t:s0 48941 ? 00:00:02 sqlservr
SQL Server- és SELinux-típusok
Ha a csomag használatával telepíti az mssql-server-selinux opcionális SELinux-szabályzatot, az új típusokat határoz meg:
| SELinux-szabályzat | Leírás |
|---|---|
mssql_opt_t |
Az mssql-server fájljainak telepítése a /opt/mssql |
mssql_server_exec_t |
Végrehajtható fájlok a /opt/mssql/bin/ |
mssql_paldumper_exec_t |
Olyan végrehajtható fájlok és szkriptek, amelyek speciális engedélyeket igényelnek a magfájlok kezeléséhez |
mssql_conf_exec_t |
Menedzsment eszköz a /opt/mssql/bin/mssql-conf |
mssql_var_t |
Fájlok címkéje a /var/opt/mssql |
mssql_db_t |
Az adatbázisfájlok címkéje a /var/opt/mssql/data |
Példák
Az alábbi példa bemutatja az adatbázis helyének módosítását, amikor az SQL Server korlátozott szolgáltatásként fut.
Hozza létre a kívánt könyvtárakat, és címkézze fel őket
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/mydbA parancs
semanage fcontextkezeli a SELinux fájlkörnyezet-leképezést. A-aparaméter új fájlkörnyezeti szabályt ad hozzá, és a-tparaméter meghatározza az alkalmazandó SELinux-típust, amely ebben az esetben az SQL Server-adatbázisfájlokra vonatkozikmssql_db_t. Végül a parancs megadja az ebben a példában szereplő elérési utat/opt/mydb, és magában foglalja a benne lévő összes fájlt és alkönyvtárat.Állítsa be az alapértelmezett adatbázis-helyet mssql-confhasználatával, és futtassa a telepítőt.
sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /opt/mydb/data sudo systemctl restart mssql-serverEllenőrzés új adatbázis létrehozásával a Transact-SQL használatával:
CREATE DATABASE TestDatabase; GOEllenőrizze, hogy az új adatbázis a megfelelő címkékkel lett-e létrehozva.
sudo ls -lZ /opt/mydb/data/Itt a várt kimenet.
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.mdfAz előző példában láthatja, hogy a fájl típusa az
mssql_db_túj fájlokhoz van társítva.