Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SqlServer PowerShell-modulen innehåller cmdletar för att konfigurera Always Encrypted i både Azure SQL Database eller SQL Server.
Säkerhetsöverväganden när du använder PowerShell för att konfigurera Always Encrypted
Eftersom det primära målet med Always Encrypted är att säkerställa att krypterade känsliga data är säkra, även om databassystemet komprometteras, kan körning av ett PowerShell-skript som bearbetar nycklar eller känsliga data på SQL Server-datorn minska eller motverka fördelarna med funktionen. Ytterligare säkerhetsrelaterade rekommendationer finns i Säkerhetsöverväganden för Nyckelhantering.
Du kan använda PowerShell för att hantera Always Encrypted-nycklar både med och utan rollseparering, vilket ger kontroll över vem som har åtkomst till de faktiska krypteringsnycklarna i nyckelarkivet och vem som har åtkomst till databasen.
Ytterligare rekommendationer finns i Säkerhetsöverväganden för Nyckelhantering.
Förutsättningar
Installera SqlServer PowerShell-modul version 22.0.50 eller senare på en säker dator som INTE är en dator som är värd för din SQL Server-instans. Modulen kan installeras direkt från PowerShell-galleriet. För mer information, se instruktionerna för nedladdning i .
Importera SqlServer-modulen
Så här laddar du SqlServer-modulen:
- Använd cmdleten Set-ExecutionPolicy för att ange lämplig skriptkörningsprincip.
- Använd cmdleten Import-Module för att importera SqlServer-modulen.
Det här exemplet läser in SqlServer-modulen.
# Import the SQL Server Module.
Import-Module "SqlServer" -MinimumVersion 22.0.50
Ansluta till en databas
Vissa av Always Encrypted-cmdletar arbetar med data eller metadata i databasen, och de kräver att du ansluter till databasen först. Det finns två rekommenderade metoder för att ansluta till en databas när du konfigurerar Always Encrypted med hjälp av SqlServer-modulen:
- Anslut med cmdleten Get-SqlDatabase.
- Anslut med SQL Server PowerShell-providern.
Använda Get-SqlDatabase
Med cmdleten Get-SqlDatabase kan du ansluta till en databas i SQL Server eller i Azure SQL Database. Det returnerar ett databasobjekt som du sedan kan skicka med hjälp av parametern InputObject för en cmdlet som ansluter till databasen.
Använda SQL Server PowerShell
# 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
Du kan också använda rörledningar:
$database | Get-SqlColumnMasterKey
Använda SQL Server PowerShell-provider
SQL Server PowerShell-providern exponerar hierarkin för SQL Server-objekt i sökvägar som liknar filsystemsökvägar. Med SQL Server PowerShell kan du navigera i sökvägarna med hjälp av Windows PowerShell-alias som liknar de kommandon som du vanligtvis använder för att navigera i filsystemsökvägar. När du har navigerat till målinstansen och databasen riktar de efterföljande cmdletarna in sig på databasen, som du ser i följande exempel.
Not
Den här metoden för att ansluta till en databas fungerar endast för SQL Server (den stöds inte i Azure SQL Database).
# 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
Du kan också ange en databassökväg med hjälp av parametern generic Path i stället för att navigera till databasen.
# 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
Always Encrypted-uppgifter med PowerShell
- Etablera Always Encrypted Keys med PowerShell
- Rotera alltid krypterade nycklar med PowerShell-
- Kryptera, Omkryptera eller dekryptera kolumner med Always Encrypted med PowerShell-
Always Encrypted Cmdlet-referens
Följande PowerShell-cmdletar är tillgängliga för Always Encrypted:
CMDLET | Beskrivning |
---|---|
Add-SqlAzureAuthenticationContext | Utför autentisering till Azure och hämtar en autentiseringstoken. |
Add-SqlColumnEncryptionKeyValue | Lägger till ett nytt krypterat värde för ett befintligt kolumnkrypteringsnyckelobjekt i databasen. |
Complete-SqlColumnMasterKeyRotation | Slutför rotationen av en kolumnhuvudnyckel |
Get-SqlColumnEncryptionKey | Returnerar alla kolumnkrypteringsnyckelobjekt som definierats i databasen eller returnerar ett kolumnkrypteringsnyckelobjekt med det angivna namnet. |
Get-SqlColumnMasterKey | Returnerar kolumnhuvudnyckelobjekten som definierats i databasen eller returnerar ett kolumnhuvudnyckelobjekt med det angivna namnet. |
Invoke-SqlColumnMasterKeyRotation | Initierar rotationen av en kolumnhuvudnyckel. |
New-SqlAzureKeyVaultColumnMasterKeySettings | Skapar ett SqlColumnMasterKeySettings-objekt som beskriver en asymmetrisk nyckel som lagras i Azure Key Vault. |
New-SqlCngColumnMasterKeySettings | Skapar ett SqlColumnMasterKeySettings-objekt som beskriver en asymmetrisk nyckel som lagras i ett nyckelarkiv som stöder CNG-API:et (Cryptography Next Generation). |
New-SqlColumnEncryptionKey | Skapar ett kolumnkrypteringsnyckelobjekt i databasen. |
New-SqlColumnEncryptionKeyEncryptedValue | Genererar ett krypterat värde för en kolumnkrypteringsnyckel. |
New-SqlColumnEncryptionSettings | Skapar ett SqlColumnEncryptionSettings-objekt som kapslar in information om en enskild kolumns kryptering, inklusive CEK och krypteringstyp. |
New-SqlColumnMasterKey | Skapar ett huvudnyckelobjekt för kolumner i databasen. |
New-SqlColumnMasterKeySettings | Skapar ett SqlColumnMasterKeySettings-objekt för en kolumnhuvudnyckel med den angivna providern och nyckelsökvägen. |
New-SqlCspColumnMasterKeySettings | Skapar ett SqlColumnMasterKeySettings-objekt som beskriver en asymmetrisk nyckel som lagras i ett nyckelarkiv med en kryptografitjänstprovider (CSP) som stöder kryptografi-API (CAPI). |
Remove-SqlColumnEncryptionKey | Tar bort kolumnkrypteringsnyckelobjektet från databasen. |
Remove-SqlColumnEncryptionKeyValue | Tar bort ett krypterat värde från ett befintligt kolumnkrypteringsnyckelobjekt i databasen. |
Remove-SqlColumnMasterKey | Tar bort kolumnhuvudnyckelobjektet från databasen. |
Set-SqlColumnEncryption | Krypterar, dekrypterar eller krypterar om angivna kolumner i databasen. |