Megosztás a következőn keresztül:


Always Encrypted konfigurálása a PowerShell használatával

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Felügyelt Példány

Az SqlServer PowerShell-modul parancsmagokat biztosít Always Encrypted konfigurálásához az Azure SQL Database-ben és az SQL Serveren egyaránt.

Biztonsági szempontok az Always Encrypted konfigurálásához használt PowerShell használatakor

Mivel az Always Encrypted elsődleges célja annak biztosítása, hogy a titkosított bizalmas adatok biztonságosak legyenek, még akkor is, ha az adatbázisrendszer biztonsága sérül, az SQL Server-számítógépen kulcsokat vagy bizalmas adatokat feldolgozó PowerShell-szkriptek végrehajtása csökkentheti vagy csökkentheti a funkció előnyeit. A biztonsággal kapcsolatos további javaslatokért tekintse meg a kulcskezelés biztonsági szempontjait.

A PowerShell segítségével szerepkör-elkülönítéssel és anélkül is kezelheti az Always Encrypted kulcsokat, így szabályozhatja, hogy ki férhet hozzá a kulcstárolóban lévő tényleges titkosítási kulcsokhoz, és ki férhet hozzá az adatbázishoz.

További javaslatokért tekintse meg a kulcskezelés biztonsági szempontjait.

Előfeltételek

Telepítse a SqlServer PowerShell-modul 22.0.50-es vagy újabb verzióját olyan biztonságos számítógépre, amely NEM az SQL Server-példányt futtató számítógép. A modul közvetlenül a PowerShell-katalógusból telepíthető. További részletekért tekintse meg a letöltési utasításait.

Az SqlServer modul importálása

Az SqlServer modul betöltése:

  1. A Set-ExecutionPolicy parancsmaggal állítsa be a megfelelő szkriptvégrehajtási szabályzatot.
  2. Az SqlServer-modul importálásához használja az Import-Module parancsmagot.

Ez a példa betölti az SqlServer modult.

# Import the SQL Server Module.  
Import-Module "SqlServer" -MinimumVersion 22.0.50

Csatlakozás adatbázishoz

Az Always Encrypted parancsmagok némelyike az adatbázisban lévő adatokkal vagy metaadatokkal dolgozik, és először az adatbázishoz kell csatlakoznia. Az Always Encrypted sqlserver modullal történő konfigurálásakor két ajánlott módszer létezik az adatbázishoz való csatlakozásra:

  1. Csatlakozás a Get-SqlDatabase parancsmaggal.
  2. Csatlakozás AZ SQL Server PowerShell-szolgáltatóval.

A Get-SqlDatabase használata

A Get-SqlDatabase parancsmaggal sql serveres vagy Azure SQL Database-adatbázishoz csatlakozhat. Visszaad egy adatbázis-objektumot, amelyet aztán átadhat az adatbázishoz csatlakozó parancsmag InputObject paraméterével.

Az SQL Server PowerShell használata

# Import the SqlServer module
Import-Module "SqlServer" -MinimumVersion 22.0.50

# Connect to your database
# Set the valid server name, database name and authentication keywords in the connection string
$serverName = "<Azure SQL server name>.database.windows.net"
$databaseName = "<database name>"
$connStr = "Server = " + $serverName + "; Database = " + $databaseName + "; Authentication = Active Directory Integrated"
$database = Get-SqlDatabase -ConnectionString $connStr

# List column master keys for the specified database.
Get-SqlColumnMasterKey -InputObject $database

Másik lehetőségként használhatja a csöveket:

$database | Get-SqlColumnMasterKey

Az SQL Server PowerShell Provider használata

Az SQL Server PowerShell-szolgáltató az SQL Server-objektumok hierarchiáját a fájlrendszer elérési útjaihoz hasonló elérési utakon teszi elérhetővé. Az SQL Server PowerShell-lel a windowsos PowerShell-aliasok használatával navigálhat az útvonalak között, hasonlóan a fájlrendszer elérési útjaihoz általában használt parancsokhoz. Miután megnyitja a célpéldányt és az adatbázist, a következő parancsmagok az adatbázist célba érik az alábbi példában látható módon.

Jegyzet

Ez az adatbázishoz való kapcsolódási módszer csak SQL Server esetén működik (az Azure SQL Database nem támogatja).

# Import the SqlServer module.
Import-Module "SqlServer" -MinimumVersion 22.0.50
# Navigate to the database in the remote instance.
cd SQLSERVER:\SQL\servercomputer\DEFAULT\Databases\yourdatabase
# List column master keys in the above database.
Get-SqlColumnMasterKey

Másik lehetőségként megadhat egy adatbázis-elérési utat az általános Elérési út paraméterrel az adatbázisra való navigálás helyett.

# Import the SqlServer module.
Import-Module "SqlServer" -MinimumVersion 22.0.50
# List column master keys for the specified database.
Get-SqlColumnMasterKey -Path SQLSERVER:\SQL\servercomputer\DEFAULT\Databases\yourdatabase

Mindig titkosított feladatok a PowerShell használatával

Always Encrypted parancsmag útmutató

Az Always Encryptedhez a következő PowerShell-parancsmagok érhetők el:

cmdlet Leírás
Add-SqlAzureAuthenticationContext Hitelesítést végez az Azure-ban, és beszerez egy hitelesítési jogkivonatot.
Add-SqlColumnEncryptionKeyValue Új titkosított értéket ad hozzá egy meglévő oszloptitkosítási kulcsobjektumhoz az adatbázisban.
Complete-SqlColumnMasterKeyRotation Befejezi az oszlop főkulcsának forgatását
Get-SqlColumnEncryptionKey Az adatbázisban definiált összes oszloptitkosítási kulcsobjektumot visszaadja, vagy egy oszloptitkosítási kulcsobjektumot ad vissza a megadott névvel.
Get-SqlColumnMasterKey Az adatbázisban definiált oszlopmintakulcs-objektumokat adja vissza, vagy egy oszlop főkulcs-objektumát adja vissza a megadott névvel.
Invoke-SqlColumnMasterKeyRotation Elindítja az oszlop főkulcsának elforgatását.
New-SqlAzureKeyVaultColumnMasterKeySettings Létrehoz egy SqlColumnMasterKeySettings objektumot, amely az Azure Key Vaultban tárolt aszimmetrikus kulcsot írja le.
New-SqlCngColumnMasterKeySettings Létrehoz egy SqlColumnMasterKeySettings objektumot, amely egy kulcstárolóban tárolt aszimmetrikus kulcsot ír le, amely támogatja a Cryptography Next Generation (CNG) API-t.
New-SqlColumnEncryptionKey Létrehoz egy oszloptitkosítási kulcsobjektumot az adatbázisban.
New-SqlColumnEncryptionKeyEncryptedValue Egy oszloptitkosítási kulcs titkosított értékét állítja elő.
New-SqlColumnEncryptionSettings Létrehoz egy SqlColumnEncryptionSettings objektumot, amely egyetlen oszlop titkosítására vonatkozó információkat foglal magában, beleértve a CEK-et és a titkosítás típusát.
New-SqlColumnMasterKey Létrehoz egy oszlop főkulcs-objektumot az adatbázisban.
New-SqlColumnMasterKeySettings Létrehoz egy SqlColumnMasterKeySettings objektumot egy oszlop főkulcsához a megadott szolgáltatóval és kulcs elérési útjával.
New-SqlCspColumnMasterKeySettings Létrehoz egy SqlColumnMasterKeySettings objektumot, amely egy kulcstárolóban tárolt aszimmetrikus kulcsot ír le egy titkosítási szolgáltatóval (CSP), amely támogatja a titkosítási API-t (CAPI).
Remove-SqlColumnEncryptionKey Eltávolítja az oszloptitkosítási kulcs objektumát az adatbázisból.
Remove-SqlColumnEncryptionKeyValue Eltávolít egy titkosított értéket az adatbázis meglévő oszloptitkosítási kulcsobjektumából.
Remove-SqlColumnMasterKey Eltávolítja az oszlop főkulcs-objektumát az adatbázisból.
Set-SqlColumnEncryption Titkosítja, visszafejti vagy újra titkosítja az adatbázis megadott oszlopait.