The certificate ” cannot be dropped because it is bound to one or more database hatasının çözümü(Sertifika Silmek)

28 Eyl by NURULLAH ÇAKIR

The certificate ” cannot be dropped because it is bound to one or more database hatasının çözümü(Sertifika Silmek)

TDE(Transparent Data Encryption) ile veritabanı şifreleme işlemi işlemi sırasında oluşturduğunuz sertifikanızı silmeniz gerekebilir. Ve bu silme işlemi sırasında aşağıdaki gibi bir hata ile karşılaşabilirsiniz.

 

 

Bu hatayı aşıp sertifikayı silebilmek için öncelikle instance üzerinde bu sertifika ile ilişkilendirilmiş database encryption key leri bulup silmeniz gerekir. Aşağıdaki sorgu yardımıyla bu listeye ulaşabilirsiniz.

select database_name = db.name,dek.encryptor_type, cert_name = mycert.name
from sys.dm_database_encryption_keys dek
left join sys.certificates mycert on dek.encryptor_thumbprint = mycert.thumbprint
inner join sys.databases db on dek.database_id = db.database_id
where mycert.name is not null

Bu sorgu sonucu çıkan ekran aşağıdaki ekran çıktısı ile benzer olacaktır.

Silmeye çalıştığımız sertifikanın ismi “Sertifikam”. Bu sertifika ile ilişkili olan database encryption key’in bulunduğu veritabanı ismi ise denemeveri. Sertifikamızı silebilmek için öncelikle denemeveri veritabanındaki database encryption key’i silmemiz gerekiyor. Bu işlemi şu şekilde yapabiliriz.

 

Öncelikle veritabanı üzerinde encryption’ı kapatıyoruz.

ALTER DATABASE denemeveri  
SET ENCRYPTION OFF;  
GO 

Sonra aşağıdaki sorgu sonucu 3 ve 1 gelene kadar bekliyoruz. Encryption açıkken 3 ve 3 olarak geliyor. Tabi benim kullandığım SQL Server Sürümü SQL Server 2014. Başka sürümlerde tek satır olarak dönebilir. Önemli olan orda 1’i görebilmek.

SELECT encryption_state  
FROM sys.dm_database_encryption_keys;  
GO  

Daha sonra ise aşağıdaki şekilde dek’i siliyoruz.

USE denemeveri;  
GO  
DROP DATABASE ENCRYPTION KEY;  
GO  

Dek silme işlemi bittikten sonra sertifikanızı hata almadan silebilirsiniz.

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir