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 Yönetilen Örneği
Veritabanı ana anahtarını (DMK) açmak için gereken parolayı içeren kimlik bilgilerini ekler veya bırakır.
Transact-SQL söz dizimi kuralları
Sözdizimi
sp_control_dbmasterkey_password @db_name = 'db_name'
, @password = 'password'
, @action = { N'add' | N'drop' }
Bağımsız değişken
Önemli
Genişletilmiş saklı yordamlar için bağımsız değişkenler, Sözdizimi bölümünde açıklandığı gibi belirli bir sırada girilmelidir. Parametreler sıra dışı girilirse bir hata iletisi oluşur.
@db_name = N'db_name'
Bu kimlik bilgileriyle ilişkilendirilmiş veritabanının adını belirtir. Sistem veritabanı olamaz. @db_namenvarchar.
@password = N'parola'
DMK'nin parolasını belirtir. @passwordnvarchar.
@action = { N'add' | N'drop' }
Kimlik bilgisi deposunda belirtilen veritabanı için bir kimlik bilgisi eylemi belirtir. @action geçirilen değer nvarchar .
| Eylem | Açıklama |
|---|---|
add |
Belirtilen veritabanı için kimlik bilgilerinin kimlik bilgisi deposuna ekleneceğini belirtir. Kimlik bilgisi DMK'nin parolasını içerir. |
drop |
Belirtilen veritabanı için bir kimlik bilgilerinin kimlik bilgisi deposundan bırakılacağını belirtir. |
Açıklamalar
SQL Server bir anahtarın şifresini çözmek veya şifrelemek için bir DMK'ye ihtiyaç duyduğunda, SQL Server DMK'nin şifresini örneğin hizmet ana anahtarı (SMK) ile çözmeye çalışır. Şifre çözme işlemi başarısız olursa, SQL Server kimlik bilgisi deposunda anahtarın gerektiği veritabanıyla aynı aile GUID'sine sahip kimlik bilgileri arar. ARDıNDAN SQL Server, şifre çözme başarılı olana veya başka kimlik bilgisi kalmayıncaya kadar DMK'nin şifresini eşleşen her kimlik bilgisi ile çözmeye çalışır.
Dikkat
sa ve diğer yüksek ayrıcalıklı sunucu sorumluları için erişilemez olması gereken bir veritabanı için ana anahtar kimlik bilgileri oluşturmayın. Veritabanını, anahtar hiyerarşisinin SMK tarafından şifresi çözülmeyecek şekilde yapılandırabilirsiniz. Bu seçenek, sa veya diğer yüksek ayrıcalıklı sunucu sorumluları tarafından erişilmemesi gereken şifrelenmiş bilgiler içeren veritabanları için derinlemesine savunma olarak desteklenir. Böyle bir veritabanı için kimlik bilgisi oluşturmak, bu derinlemesine savunmayı kaldırarak sa ve diğer yüksek ayrıcalıklı sunucu sorumlularının veritabanının şifresini çözmesini sağlar.
sp_control_dbmasterkey_password kullanılarak oluşturulan kimlik bilgileri sys.master_key_passwords katalog görünümünde görünür. DMK'ler için oluşturulan kimlik bilgilerinin adları şu biçime sahiptir: ##DBMKEY_<database_family_guid>_<random_password_guid>##. Parola, kimlik bilgisi gizli dizisi olarak depolanır. Kimlik bilgisi deposuna eklenen her parolanın sys.credentialsiçinde eşleşen bir satırı vardır.
sp_control_dbmasterkey_password kullanarak şu sistem veritabanları için kimlik bilgisi oluşturamazsınız: master, model, msdbveya tempdb.
sp_control_dbmasterkey_password, parolanın belirtilen veritabanının DMK'sini açabildiğini doğrulamaz.
Belirtilen veritabanı için zaten bir kimlik bilgisinde depolanan bir parola belirtirseniz, sp_control_dbmasterkey_password başarısız olur.
Farklı sunucu örneklerinden iki veritabanı aynı aile GUID'sini paylaşabilir. Bu durumda veritabanları, kimlik bilgisi deposunda aynı DMK kayıtlarını paylaşır.
sp_control_dbmasterkey_password geçirilen parametreler izlemelerde görünmez.
DMK'yi açmak için sp_control_dbmasterkey_password kullanılarak eklenen kimlik bilgilerini kullandığınızda, DMK SMK tarafından yeniden şifrelenir. Veritabanı salt okunur moddaysa, yeniden şifreleme işlemi başarısız olur ve DMK şifrelenmemiş olarak kalır. DMK'ye sonraki erişim için OPEN MASTER KEY deyimini ve parolayı kullanmanız gerekir. Parola kullanmaktan kaçınmak için, veritabanını salt okunur moda taşımadan önce kimlik bilgilerini oluşturun.
Olası geriye dönük uyumluluk sorunu
Şu anda saklı yordam bir anahtarın var olup olmadığını denetlemez. Bu işlev geriye dönük uyumluluk için izin verilir, ancak bir uyarı görüntüler. Bu davranış kullanım dışıdır. Gelecekteki bir sürümde anahtarın mevcut olması ve saklı yordam sp_control_dbmasterkey_password kullanılan parolanın DMK'yi şifrelemek için kullanılan parolalardan biriyle aynı olması gerekir.
İzinler
sysadmin sabit sunucu rolüne üyelik gerektirir veya doğrudan bu saklı yordamda yürütme izni gerektirir.
Örnekler
Bu makaledeki kod örnekleri, Microsoft SQL Server Örnekleri ve Topluluk Projeleri giriş sayfasından indirebileceğiniz AdventureWorks2022 veya AdventureWorksDW2022 örnek veritabanını kullanır.
A. AdventureWorks ana anahtarı için kimlik bilgisi oluşturma
Aşağıdaki örnek, AdventureWorks2022 DMK için bir kimlik bilgisi oluşturur ve ana anahtar parolasını kimlik bilgilerine gizli dizi olarak kaydeder.
sp_control_dbmasterkey_password geçirilen tüm parametreler nvarchar veri türünde olması gerektiğinden, metin dizeleri Natama işleciyle dönüştürülür.
EXECUTE sp_control_dbmasterkey_password
@db_name = N'AdventureWorks2022',
@password = N'sdfjlkj#mM00sdfdsf98093258jJlfdk4',
@action = N'add';
GO
B. Veritabanı ana anahtarı için kimlik bilgilerini bırakma
Aşağıdaki örnek, A örneğinde oluşturulan kimlik bilgilerini kaldırır. Parola da dahil olmak üzere tüm parametreler gereklidir.
EXECUTE sp_control_dbmasterkey_password
@db_name = N'AdventureWorks2022',
@password = N'sdfjlkj#mM00sdfdsf98093258jJlfdk4',
@action = N'drop';
GO
İlgili içerik
- Şifrelenmiş Yansıtma Veritabanı Ayarlama
- Güvenlik saklı yordamları (Transact-SQL)
- Sistem saklı yordamları (Transact-SQL)
- sys.credentials (Transact-SQL)
- Kimlik Bilgileri (Veritabanı Altyapısı)