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.
A következőkre vonatkozik: SQL Server 2022 (16.x) és újabb verziók Linuxon
Important
Ez a szolgáltatás jelenleg előzetes kiadásban elérhető.
Az SQL Server 2022 (16.x) Cumulative Update 24 (CU24) és az SQL Server 2025 (17.x) Cumulative Update 3 (CU3) használatával használhatod a bulkadmin fix szerver szerepét vagy az ADMINISTER BULK OPERATIONS engedélyt a Linuxon futó SQL Server-en végzett tömeges adatimporti műveletek végrehajtására. Korábban csak a rendszergazdálkodó fix szerver tagjai futtathattak BULK INSERT vagy OPENROWSET (BULK...) Linuxon.
Az SQL Server on Linux további fájlrendszer- és útellenőrzési ellenőrzéseket hajt végre tömeges műveletekre, túlmutatva a Windows követelményein. A rendszergazdának:
- Megfelelő SQL Server-engedélyek megadása a felhasználónak
- Linux fájlrendszerbeli engedélyek megadása az adatfájlokhoz
- Kifejezetten jóváhagyja a könyvtár útvonalakat
mssql-conf
Prerequisites
- SQL Server 2022 (16.x) CU24 vagy újabb verzió Linuxon, vagy SQL Server 2025 (17.x) CU3 vagy újabb verzió Linuxon
- Rendszergazdai hozzáférés a Linux-gazdagéphez
- Rendszergazdai hozzáférés az SQL Server-példányhoz
A Linux fájlrendszer konfigurálása
A tömeges importműveletek mssql előtt a szolgáltatásfióknak olvasási hozzáféréssel kell rendelkeznie a Linux fájlrendszer adatfájljaihoz.
Hozzon létre egy könyvtárat a tömeges adatfájlokhoz:
mkdir -p /tmp/bulkload/sales/Mintaadatfájl létrehozása:
cat > /tmp/bulkload/sales/loadsalesdata.csv << EOF Id,CustomerName,OrderDate,Amount 1,John Doe,2026-02-01,500.75 2,Jane Smith,2026-02-05,1500.20 3,Mark Lee,2026-02-10,320.50 4,Alice Johnson,2026-02-15,785.00 5,Bob Brown,2026-02-20,930.40 EOFOlvasási engedély megadása az SQL Server-folyamatfiókhoz (
mssql) az adatfájlban:setfacl -m u:mssql:r /tmp/bulkload/sales/loadsalesdata.csv
Engedélyezett útvonalak konfigurálása mssql-conf használatával
A rendszergazdának jóvá kell hagynia azokat a könyvtárakat, amelyekből tömeges műveletek olvashatók, a bulkadmin.allowedpathslist beállítást használva a mssql-conf-ban. Ez a módosítás azonnal érvénybe lép, és nem igényel SQL Server-szolgáltatás újraindítását.
sudo /opt/mssql/bin/mssql-conf set bulkadmin.allowedpathslist "/tmp/bulkload/sales"
Több könyvtár megadásához különítse el az egyes elérési utakat kettősponttal (:):
sudo /opt/mssql/bin/mssql-conf set bulkadmin.allowedpathslist "/tmp/bulkload/sales:/tmp/bulkload/marketing"
Másik lehetőségként megadhat egy szülőkönyvtárat, amely lehetővé teszi az összes alkönyvtárat alatta.
Útvonalkorlátozások
A tömeges műveletekhez konfigurált útvonalakra a következő korlátozások vonatkoznak:
- Az elérési útnak abszolút útnak kell lennie. Relatív elérési utak, amelyek
.tartalmazzák vagy..nem engedélyezettek. - A gyökér elérési útja (
/) nem engedélyezett. - Az elérési út nem haladhatja meg a 4096 karaktert.
- Az elérési út nem tartalmazhat érvénytelen karaktereket (null, új vonal, kocsivissza vagy lap).
- A szimbolikus hivatkozások nem engedélyezettek.
- Az elérési útnak egy könyvtárra kell hivatkoznia.
Tiltott útvonalak
A rendszer terv szerint blokkolja a kritikus útvonalakat. Ezeket a helyeket nem használhatja forrásadatfájl-elérési utakként tömeges műveletekhez, még akkor sem, ha hozzáadja őket az engedélyezett elérési utak listájához:
-
/var/opt/mssql(vagy az SQL Server telepítési könyvtára) /var/opt/azcmagent/certs/var/opt/azcmagent/tokens
A forrásadatokat ezekből az útvonalakból beolvasó tömeges műveletek biztonsági okokból meghiúsulnak. Ez a korlátozás nem vonatkozik a ERRORFILE kimeneti útvonalra, amely alapértelmezés szerint az SQL Server adatkönyvtárát használja.
SQL Server-engedélyek beállítása
Miután konfigurálta a Linux fájlrendszert és engedélyezte az elérési utakat, állítsa be az SQL Server-engedélyeket a tömeges importálást végrehajtó felhasználó számára.
Csatlakozzon az SQL Server-példányhoz, és hozzon létre egy mintaadatbázist és egy táblát:
CREATE DATABASE demodbforbulkinsert; GO USE demodbforbulkinsert; GO CREATE TABLE dbo.Sales ( Id INT NOT NULL PRIMARY KEY, CustomerName NVARCHAR (200) NOT NULL, OrderDate DATE NOT NULL, Amount DECIMAL (18, 2) NOT NULL ); GOHozzon létre egy bejelentkezést a tömeges importálási felhasználóhoz:
USE master; GO CREATE LOGIN BulkLoadUser WITH PASSWORD = '<password>'; GOAdd meg az
ADMINISTER BULK OPERATIONSengedélyt, vagy add hozzá a bejelentkezést a bulkadmin fix szerver szerepéhez. Használja az alábbi lehetőségek egyikét:-- Option 1: Add to the bulkadmin server role ALTER SERVER ROLE bulkadmin ADD MEMBER BulkLoadUser; GO-- Option 2: Grant the permission directly GRANT ADMINISTER BULK OPERATIONS TO BulkLoadUser; GOHozzon létre egy adatbázis-felhasználót, és adja meg a szükséges táblaengedélyeket:
USE demodbforbulkinsert; GO CREATE USER BulkLoadUser FOR LOGIN BulkLoadUser; GO GRANT INSERT, SELECT ON dbo.Sales TO BulkLoadUser; GO
Tömeges importálás végrehajtása
Csatlakozzon az adatbázishoz a(z) BulkLoadUser felhasználóval, majd futtassa a tömeges importálást.
USE demodbforbulkinsert;
GO
BULK INSERT dbo.Sales
FROM '/tmp/bulkload/sales/loadsalesdata.csv'
WITH (
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ERRORFILE = '/var/opt/mssql/data/bulk_errors'
);
GO
-- Verify the imported data
SELECT *
FROM dbo.Sales;
GO
Ugyanezek az engedélyek, a Linux fájlrendszer konfigurációja és az elérési út jóváhagyási lépései érvényesek az utasításokra INSERT ... SELECT * FROM OPENROWSET(BULK...) . További információért lásd: A BULK INSERT vagy az OPENROWSET(BULK...) használata adatok SQL Serverbe történő importálásához.
Frissítési és visszaminősítési viselkedés
Az SQL Server 2022 (16.x) CU24-től és az SQL Server 2025 (17.x) CU3-tól kezdve az SQL Server on Linux támogatja a bulkadmin fix szerver szerepét vagy ADMINISTER BULK OPERATIONS jogosultságát használó tömeges műveleteket.
Ha az SQL Server 2022 (16.x) CU24 vagy az SQL Server 2025 (17.x) CU3-nál korábbi kumulatív frissítésre vált:
- A korábban megadott engedélyek továbbra is hozzárendelve maradnak, de nem működnek.
- A tömeges műveletekhez rendszergazmos jogosultságok szükségesek, azaz a korábbi verziókban, amelyek ezeket az összesített frissítéseket megelőző verziók.