在Sql Server系统中,如果需要创建对称密钥,则需要首先创建一个数据库主密钥,然后是一个证书,然后是对称密钥,并使用以下代码:
-- Create database master key
CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘GoodLuckWithExam!’
-- Create certificate
CREATE CERTIFICATE Cert_BAN
WITH SUBJECT = ‘Bank Account Number’;
-- Create SMK
CREATE SYMMETRIC KEY Key_BAN
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE Cert_BAN;
从这里我们可以看到SMK受证书保护。但是证书不受数据库主密钥保护,那么我的问题是为什么我们根本需要数据库主密钥?
谢谢
答案 0 :(得分:0)
证书私钥使用数据库主密钥加密。
来自CREATE CERTIFICATE:
密码加密='密码'
指定用于加密私钥的密码。仅当您要使用密码加密证书时才使用此选项。如果省略此子句,则使用数据库主密钥对私钥进行加密。密码必须符合运行SQL Server实例的计算机的Windows密码策略要求。