Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
SqlServer PowerShell modülü, hem Azure SQL Veritabanı'nda hem de SQL Server'da Always Encrypted yapılandırmaya yönelik cmdlet'ler sağlar.
Always Encrypted'ı Yapılandırmak için PowerShell Kullanırken Dikkat Edilmesi Gereken Güvenlik Konuları
Always Encrypted'ın birincil amacı şifrelenmiş hassas verilerin güvenli olduğundan emin olmak olduğundan, veritabanı sistemi tehlikeye girmiş olsa bile, SQL Server bilgisayarında anahtarları veya hassas verileri işleyen bir PowerShell betiğini yürütmek özelliğin avantajlarını azaltabilir veya yenebilir. Güvenlikle ilgili daha fazla öneri için bkz. Anahtar Yönetimi için GüvenlikLe İlgili Önemli Noktalar.
PowerShell'i, rol ayrımı ile ve rol ayrımı olmadan Always Encrypted anahtarlarını yönetmek için kullanabilir, anahtar deposundaki gerçek şifreleme anahtarlarına kimlerin erişimi olduğu ve veritabanına kimlerin erişimi olduğu üzerinde denetim sağlayabilirsiniz.
Daha fazla öneri için bkz. Anahtar Yönetimi için Güvenlik Konuları.
Önkoşullar
Güvenli bir bilgisayara, SQL Server örneğinizin barındırıldığı bilgisayar OLMAYAN bir bilgisayara, SqlServer PowerShell modülü 22.0.50 veya daha üstü bir sürümünü yükleyin. Modül doğrudan PowerShell galerisinden yüklenebilir. Daha fazla bilgi için indirme yönergelerine bakın.
SqlServer modülünü içeri aktarma
SqlServer modülünü yüklemek için:
- Uygun betik yürütme ilkesini ayarlamak için Set-ExecutionPolicy cmdlet'ini kullanın.
- SqlServer modülünü içeri aktarmak için Import-Module cmdlet'ini kullanın.
Bu örnek, SqlServer modülünü yükler.
# Import the SQL Server Module.
Import-Module "SqlServer" -MinimumVersion 22.0.50
Veritabanına bağlanma
Always Encrypted cmdlet'lerinden bazıları veritabanındaki verilerle veya meta verilerle çalışır ve önce veritabanına bağlanmanızı gerektirir. SqlServer modülünü kullanarak Always Encrypted'ı yapılandırırken veritabanına bağlanmak için önerilen iki yöntem vardır:
- Get-SqlDatabase cmdlet'ini kullanarak bağlanın.
- SQL Server PowerShell Sağlayıcısı kullanarak bağlanın.
Get-SqlDatabase'i kullanma
Get-SqlDatabase cmdlet'i SQL Server'daki veya Azure SQL Veritabanı'ndaki bir veritabanına bağlanmanızı sağlar. Veritabanına bağlanan bir cmdlet'in InputObject parametresi aracılığıyla aktarabileceğiniz bir veritabanı nesnesi döndürür.
SQL Server PowerShell kullanma
# 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
Alternatif olarak, boruları kullanabilirsiniz:
$database | Get-SqlColumnMasterKey
SQL Server PowerShell Sağlayıcısını Kullanma
SQL Server PowerShell Sağlayıcısı, dosya sistemi yollarına benzer yollarda SQL Server nesnelerinin hiyerarşisini kullanıma sunar. SQL Server PowerShell ile, genellikle dosya sistemi yollarında gezinmek için kullandığınız komutlara benzer Windows PowerShell diğer adlarını kullanarak yollarda gezinebilirsiniz. Hedef örneğe ve veritabanına geçtiğinizde, sonraki cmdlet'ler aşağıdaki örnekte gösterildiği gibi bu veritabanını hedefler.
Not
Bu veritabanına bağlanma yöntemi yalnızca SQL Server için çalışır (Azure SQL Veritabanı'nda desteklenmez).
# 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
Alternatif olarak, veritabanına gitmek yerine genel Path parametresini kullanarak bir veritabanı yolu belirtebilirsiniz.
# 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
PowerShell Kullanarak Always Encrypted Özelliği ile Görevler
- PowerShell kullanarak Always Encrypted Anahtarlarını Sağlama
- PowerShell kullanarak Always Encrypted Anahtarlarını Döndürme
- PowerShell kullanarak Always Encrypted ile Sütunları Şifreleme, Yeniden Şifreleme veya Şifresini Çözme
Always Encrypted Cmdlet Referansı
Always Encrypted için aşağıdaki PowerShell cmdlet'leri kullanılabilir:
CMDLET | Açıklama |
---|---|
Add-SqlAzureAuthenticationContext | Azure'da kimlik doğrulaması gerçekleştirir ve bir kimlik doğrulama belirteci alır. |
Add-SqlColumnEncryptionKeyValue | Veritabanındaki mevcut bir sütun şifreleme anahtarı nesnesi için yeni bir şifrelenmiş değer ekler. |
Complete-SqlColumnMasterKeyRotation | Sütun ana anahtarının döndürmesini tamamlar |
Get-SqlColumnEncryptionKey | Veritabanında tanımlanan tüm sütun şifreleme anahtarı nesnelerini döndürür veya belirtilen ada sahip bir sütun şifreleme anahtarı nesnesi döndürür. |
Get-SqlColumnMasterKey | Veritabanında tanımlanan sütun ana anahtar nesnelerini döndürür veya belirtilen ada sahip bir sütun ana anahtar nesnesi döndürür. |
Invoke-SqlColumnMasterKeyRotation | Bir sütun ana anahtarının döndürülmesini başlatır. |
New-SqlAzureKeyVaultColumnMasterKeySettings | Azure Key Vault'ta depolanan asimetrik anahtarı açıklayan bir SqlColumnMasterKeySettings nesnesi oluşturur. |
New-SqlCngColumnMasterKeySettings | Şifreleme Yeni Nesil (CNG) API'sini destekleyen bir anahtar deposunda depolanan asimetrik anahtarı açıklayan bir SqlColumnMasterKeySettings nesnesi oluşturur. |
New-SqlColumnEncryptionKey | Veritabanında bir sütun şifreleme anahtarı nesnesi oluşturur. |
New-SqlColumnEncryptionKeyEncryptedValue | Bir sütun şifreleme anahtarının şifrelenmiş değerini üretir. |
New-SqlColumnEncryptionSettings | CEK ve şifreleme türü dahil olmak üzere tek bir sütunun şifrelemesi hakkındaki bilgileri kapsülleyen bir SqlColumnEncryptionSettings nesnesi oluşturur. |
New-SqlColumnMasterKey | Veritabanında bir sütun ana anahtar nesnesi oluşturur. |
New-SqlColumnMasterKeySettings | Belirtilen sağlayıcı ve anahtar yoluna sahip bir sütun ana anahtarı için bir SqlColumnMasterKeySettings nesnesi oluşturur. |
New-SqlCspColumnMasterKeySettings | Şifreleme API'sini (CAPI) destekleyen bir Şifreleme Hizmet Sağlayıcısı (CSP) ile bir anahtar deposunda depolanan asimetrik anahtarı açıklayan bir SqlColumnMasterKeySettings nesnesi oluşturur. |
Remove-SqlColumnEncryptionKey | Sütun şifreleme anahtarı nesnesini veritabanından kaldırır. |
Remove-SqlColumnEncryptionKeyValue | Veritabanındaki mevcut bir sütun şifreleme anahtarı nesnesinden şifrelenmiş bir değeri kaldırır. |
Remove-SqlColumnMasterKey | Veritabanından sütun ana anahtar nesnesini kaldırır. |
Set-SqlColumnEncryption | Veritabanında belirtilen sütunları şifreler, şifrelerini çözer veya yeniden şifreler. |
İlgili içerik
- Her Zaman Şifreli
- Always Encrypted için anahtar yönetimine genel bakış
- SQL Server Management Studio kullanarak Always Encrypted'ı yapılandırma
- Always Encrypted kullanarak uygulama geliştirme