簡體   English   中英

SQL Server 2005使用私鑰/加密創建證書

[英]SQL Server 2005 create certificate with private key / encryption

好的,這是我的問題。 我正在使用數據庫主密鑰,證書和對稱密鑰在SQL Server 2005中進行數據加密。 我需要能夠使用私鑰還原證書。 但是,當我使用PRIVATE KEY運行CREATE CERTIFICATE時,證書被拉到DB中,但是私鑰沒有顯示。 以下是我遵循的測試步驟。

創建數據庫主密鑰。

 CREATE MASTER KEY ENCRYPTION BY PASSWORD = '12345'

創建證書

CREATE CERTIFICATE MyCert 
WITH SUBJECT = 'My First Certificate', 
EXPIRY_DATE = '1/1/2199';

創建使用MyCert加密的對稱密鑰。

CREATE SYMMETRIC KEY MySymmetricKey 
WITH ALGORITHM = AES_256 
ENCRYPTION BY CERTIFICATE MyCert

在select語句下面調用以顯示密鑰和證書。 他們是。 主數據庫密鑰,對稱密鑰和證書都在那里。

SELECT * FROM sys.symmetric_keys 

SELECT * FROM sys.certificates 

創建數據庫證書和密鑰的備份

請注意,我嘗試將它們放在同一文件夾中,但也不起作用。

BACKUP CERTIFICATE MyCert TO FILE = 'C:\SQLDatabase\MyCert\MyCert.cert'
WITH PRIVATE KEY ( FILE = 'C:\SQLDatabase\MyKey\MySymmetricKey.key' ,
ENCRYPTION BY PASSWORD = '12345' )

放下密鑰和證書,並確認它們已消失。

DROP SYMMETRIC KEY MySymmetricKey
DROP CERTIFICATE MyCert;

僅通過文件創建的證書沒有還原。 我用WITH PRIVATE KEY稱創建證書。

當我運行此證書時,將顯示證書,但密鑰不隨附。

我已經驗證它們在文件夾中,並且SQL可以訪問這些文件夾。

我也嘗試過使用私鑰更改證書,但仍然沒有。

我想念什么?

CREATE CERTIFICATE PayGoDBCert 
FROM FILE = 'C:\SQLDatabase\MyCert\MyCert.cert'
WITH PRIVATE KEY (FILE = 'C:\SQLDatabase\MyKey\MySymmetricKey.key' , 
DECRYPTION BY PASSWORD = '12345')

SELECT * FROM sys.symmetric_keys 
SELECT * FROM sys.certificates 

在您的示例中,您刪除了對稱密鑰,但是不再重新創建它。

再次重新創建對稱密鑰,然后還原證書。

請注意:用於保護備份證書的密碼與用於加密證書私鑰的密碼不同。

讓我們知道是否可以解決您的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM