ALTER CERTIFICATE (Transact-SQL)
適用於:SQL Server Azure SQL Azure SQL 資料庫 Azure SQL 受控執行個體 Analytics Platform System (PDW)
變更用來加密憑證私密金鑰的密碼、移除私密金鑰,或在沒有時匯入私密金鑰。 將憑證的可用性變更為 Service Broker。
語法
-- Syntax for SQL Server and Azure SQL Database
ALTER CERTIFICATE certificate_name
REMOVE PRIVATE KEY
| WITH PRIVATE KEY ( <private_key_spec> )
| WITH ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
<private_key_spec> ::=
{
{ FILE = 'path_to_private_key' | BINARY = private_key_bits }
[ , DECRYPTION BY PASSWORD = 'current_password' ]
[ , ENCRYPTION BY PASSWORD = 'new_password' ]
}
|
{
[ DECRYPTION BY PASSWORD = 'current_password' ]
[ [ , ] ENCRYPTION BY PASSWORD = 'new_password' ]
}
-- Syntax for Parallel Data Warehouse
ALTER CERTIFICATE certificate_name
{
REMOVE PRIVATE KEY
| WITH PRIVATE KEY (
FILE = '<path_to_private_key>',
DECRYPTION BY PASSWORD = '<key password>' )
}
引數
certificate_name
這是資料庫中憑證的唯一識別名稱。
REMOVE PRIVATE KEY
指定私密金鑰不應該在資料庫中繼續維護。
WITH PRIVATE KEY 指定憑證的私密金鑰會載入到 SQL Server。
FILE ='path_to_private_key'
指定通往私密金鑰的完整路徑 (包括檔案名稱)。 這個參數可以是本機路徑或是通往網路位置的 UNC 路徑。 此檔案可在 SQL Server 服務帳戶的安全性內容中存取。 當您使用這個選項時,請確定服務帳戶有權存取指定的檔案。
如果只指定檔案名稱,該檔案會儲存在執行個體的預設使用者資料夾中。 此資料夾可能是 SQL Server DATA 資料夾。 如果是 SQL Server Express LocalDB,執行個體的預設使用者資料夾是 %USERPROFILE%
環境變數為建立該執行個體的帳戶所指定的路徑。
BINARY ='private_key_bits'
適用於:SQL Server 2012 (11.x) 和更新版本。
指定為二進位常數的私密金鑰位元。 這些位元可以是加密形式。 如果加密的話,使用者必須提供解密密碼。 不會針對這個密碼執行密碼原則檢查。 私密金鑰位元應該採用 PVK 檔案格式。
DECRYPTION BY PASSWORD ='current_password'
指定私密金鑰解密所需的密碼。
ENCRYPTION BY PASSWORD ='new_password'
指定用來加密資料庫內憑證之私密金鑰的密碼。 new_password 必須符合執行 SQL Server 執行個體之電腦的 Windows 密碼原則需求。 如需詳細資訊,請參閱< Password Policy>。
ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
讓 Service Broker 對話交談的起始端能夠使用該憑證。
備註
私密金鑰必須對應至 certificate_name 所指定的公開金鑰。
如果您利用 Null 密碼來保護檔案中的密碼,就可以省略 DECRYPTION BY PASSWORD 子句。
匯入已存在於資料庫中的憑證私密金鑰時,私密金錀會自動受到資料庫主要金鑰的保護。 若要利用密碼來保護私密金鑰,請使用 ENCRYPTION BY PASSWORD 子句。
REMOVE PRIVATE KEY 選項會從資料庫刪除憑證的私密金鑰。 您可以在將使用憑證來驗證簽章時,或在不需要私密金鑰的 Service Broker 案例中,移除私密金鑰。 請勿移除保護對稱金鑰之憑證的私密金鑰。 必須還原私密金鑰,才能簽署應該使用憑證驗證的任何其他模組或字串,或解密已使用該憑證加密的值。
如果私密金鑰是利用資料庫主要金鑰加密時,就不必指定解密密碼。
若要變更用來加密私密金鑰的密碼,請勿指定 FILE 或 BINARY 子句。
重要
在從資料庫移除私密金鑰之前,請務必先製作一份保存副本。 如需詳細資訊,請參閱 BACKUP CERTIFICATE (Transact-SQL) 和 CERTPRIVATEKEY (Transact-SQL)。
自主資料庫無法使用 WITH PRIVATE KEY 選項。
權限
需要憑證的 ALTER 權限。
範例
A. 移除憑證的私密金鑰
ALTER CERTIFICATE Shipping04
REMOVE PRIVATE KEY;
GO
B. 變更為私密金鑰加密所用的密碼
ALTER CERTIFICATE Shipping11
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%',
ENCRYPTION BY PASSWORD = '34958tosdgfkh##38');
GO
C. 匯入已在資料庫中之憑證的私密金鑰。
ALTER CERTIFICATE Shipping13
WITH PRIVATE KEY (FILE = 'c:\importedkeys\Shipping13',
DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');
GO
D. 將私密金鑰的保護,從密碼改為資料庫主要金鑰
ALTER CERTIFICATE Shipping15
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');
GO
另請參閱
CREATE CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)
加密階層
EVENTDATA (Transact-SQL)
CERTENCODED (Transact-SQL)
CERTPRIVATEKEY (Transact-SQL)
CERT_ID (Transact-SQL)
CERTPROPERTY (Transact-SQL)