数据加密的密钥和证书要设置对应的权限,并把重要的密钥,比如,SMK和DMK,以及证书进行异地备份。
查看系统中已存在的证书、对称密钥和非对称密钥:
- sys.certificates
- sys.asymmetric_keys
- sys.symmetric_keys
一,对加密机制的权限管理
对证书、对称密钥和非对称密钥的权限管理,可以授予的权限是 CONTROL, TAKE OWNERSHIP,ALTER,REFERENCES和VIEW DEFINITION。对证书、对称密钥和非对称密钥的权限授予,Grant命令的格式是一致的,唯一不同的是安全对象(Securable):
GRANT permission [ ,...n ] ON class :: securable TO principal [ ,...n ] class :: securable = ASYMMETRIC KEY :: asymmetric_key_name |SYMMETRIC KEY :: symmetric_key_name |CERTIFICATE :: certificate_name
举个例子,授予Principal引用证书的权限:
GRANT REFERENCES ON CERTIFICATE :: my_certificate_name TO user1,domain_user2
二,密钥的冗余保护
对于SMK和DMK,可以使用冗余副本进行保护,这两个主密钥,可以执行BACKUP和RESTORE命令。
对于证书,可以把证书导出,保存证书的副本。
对于对称密钥和非对称密钥,无法保存副本。
参考文档:
Security Catalog Views (Transact-SQL)
GRANT Certificate Permissions (Transact-SQL)