推荐使用安全存储方案,特别是对于dmP格式文件这种敏感数据。常规保存方法容易被直接访问,而安全存储如使用 Transparent Data Encryption (TDE) 或 Always Encrypted 可以确保数据在存储和传输中加密,防止未经授权访问。教程:1. 启用TDE:在Master数据库执行 CREATE MASTER KEY ENCRYPTION BY PASSWORD = '强密码'; CREATE CERTIFICATE TDECert WITH SUBJECT = 'TDE Certificate'; 用证书备份证书;对用户数据库备份密钥并创建数据库加密密钥 CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE TDECert; ALTER DATABASE [数据库名] SET ENCRYPTION ON; 2. 对于dmP文件,如果是密码文件,优先用Always Encrypted列加密敏感列。
来源1
在SQL Server中存储敏感文件如dmP格式,最好不要常规保存到文件系统,而是直接存入数据库的varbinary(max)列,并结合加密。常规方法:简单备份到文件夹,风险高,被窃取后直接可用。安全方案:用数据库内置加密函数如EncryptByKey加密后存入,查询时DecryptByKey解密。示例代码:DECLARE @key_guid VARCHAR(128); SELECT @key_guid = key_guid FROM sys.key_encryptions WHERE key_name = 'YourSymmetricKey'; INSERT INTO SecureTable (EncryptedDMP) VALUES (EncryptByKey(@key_guid, @dmpData));
来源2
dmP文件是某种加密凭证文件,MSSQL安全存储首选是使用Extensible Key Management (EKM) 与硬件安全模块 (HSM) 结合,或者软件方式用Service Master Key和Database Master Key。常规保存就是扔到C盘,傻瓜式但不安全,一黑就全丢。安全存储方案步骤:创建服务主密钥 CREATE MASTER KEY ENCRYPTION BY PASSWORD = '密码'; 创建数据库主密钥在每个db中;然后用对称密钥加密文件内容存blob字段。
来源3
对于dmP格式文件,选择安全存储方案。原因:常规保存方法文件明文或弱加密,易被SQL注入或备份窃取。安全方案:1. FILESTREAM + 加密;2. 纯varbinary加密存储。测试过,TDE是最简单有效的,全盘加密数据库文件,dmP放里面备份时自动加密。关闭TDE:ALTER DATABASE SET ENCRYPTION OFF;
来源4
实际经验:我们公司dmP文件用常规方法存共享文件夹,结果被内部人员复制走了。用安全存储后,用Column Level Encryption,代码:CREATE SYMMETRIC KEY SymKey WITH ALGORITHM = AES_256 ENCRYPTION BY CERTIFICATE YourCert; 存:UPDATE table SET dmp_col = EncryptByKey(Key_GUID('SymKey'), @data); 取:OPEN SYMMETRIC KEY SymKey DECRYPTION BY CERTIFICATE YourCert; SELECT CONVERT(varchar, DecryptByKey(dmp_col)) FROM table;
来源5
dmP文件安全存储,强烈建议Always Encrypted,新版SQL Server支持客户端加密,服务器看不到明文。配置:用SSMS向导创建Column Master Key和Column Encryption Key,对列启用Always Encrypted。比TDE好,因为TDE是服务器端,管理员仍能访问;Always Encrypted是客户端密钥,超级安全。常规保存?别想了,除非你不怕丢数据。
来源6
FAQ:
Q: dmP文件是什么?
A: 一种数据库密码或凭证格式文件,常用于MSSQL扩展。
Q: TDE和Always Encrypted哪个更好?
A: TDE适合全库加密简单;Always Encrypted适合特定列最高安全。
Q: 常规保存的风险?
A: 文件易被复制、权限控制弱,黑客直取。
Q: 如何迁移现有dmP到安全存储?
A: 读出文件,用EncryptByKey加密,插入新表,删除原文件。