标签: encryption

在执行 mysqldump 时如何加密数据?

我的操作系统是 Windows 7。

  • 如何在执行 mysqldump 时加密数据?
  • 在命令提示符下,我可以使用加密的 varchar 和 texts 值进行 mysqldump 吗?

请帮我。

谢谢

mysql mysql-5 mysqldump command-line encryption

5
推荐指数
2
解决办法
1万
查看次数

由*正确*服务主密钥加密的数据库主密钥?

我的客户经常运行我们将数据库从 prod 环境移动到较低环境的过程(使用 prod 数据库刷新 QA 等)。这些 DB 上有数据库主密钥。我们将这些重新加密到目标服务器上的服务主密钥中没有问题,但这是烦人的部分:

  1. sys.databases 表示 DMK 已经加密(尽管使用源服务的 SMK)
  2. 我们无法找到判断 DMK 是否由当前 SMK 加密的方法(检查所有加密 DMV)
  3. sys.symmetric_keys 中的 SMK 签名始终为 0x01(跨服务器不唯一)。

这本身不是问题。解决方法始终是将 DMK 重新加密为 SMK。我们只想知道它是否已经完成。任何人都有任何技巧吗?

谢谢,埃里克

security sql-server t-sql sql-server-2008-r2 encryption

5
推荐指数
1
解决办法
1071
查看次数

是否有任何理由备份这些系统创建的证书?

我了解备份密钥和用户定义的证书的必要性,但是我们是否有任何理由应该备份这些系统创建的证书?

MS_AgentSigningCertificate

MS_PolicySigningCertificate

MS_SchemaSigningCertificate34284BF7CE6208DC9D835E9F45ADD94F0757439E

MS_SmoExtendedSigningCertificate

MS_SQLAuthenticatorCertificate

MS_SQLReplicationSigningCertificate

MS_SQLResourceSigningCertificate

sql-server backup encryption certificate

5
推荐指数
1
解决办法
117
查看次数

具有加密连接的 Always On 可用性组

我们有一个两节点的 SQL Server 2016 AOAG、TestA、TestB 和侦听器 TestL。我们想开始在应用服务器/客户端和数据库服务器之间使用加密连接。

我在两个关于实现连接加密的 MS 文档中找到了下面的部分。只是想知道这是否适用于 AOAG?我怀疑确实如此,因为 AOAG 确实需要使用故障转移集群,但需要确认。

集群上的加密

如果要对故障转移群集使用加密,则必须在故障转移群集中的所有节点上安装具有故障转移群集实例的完全限定 DNS 名称的服务器证书。例如,如果您有一个双节点集群,节点名为 test1.your company.com 和 test2。您的 company.com 和名为 fcisql 的 SQL Server 故障转移群集实例,您必须为 fcisql.your company.com 获取证书并在两个节点上安装该证书。若要配置故障转移群集进行加密,您可以在 SQL Server 网络配置的属性框的协议中选中 ForceEncryption 复选框

sql-server encryption availability-groups connections sql-server-2016

5
推荐指数
1
解决办法
5869
查看次数

SQL Server SSL 加密 - 自签名证书有效 - 为什么?

我意识到这是一种奇怪的行为,我想知道在使用 SQL Server 生成的自签名证书时它是否应该以这种方式工作。

  1. 设置“加密连接”选项的客户端(Management Studio),客户端将在 SQL Server 端验证自签名证书并失败,因为自签名证书不受信任

  2. 客户端 (Management Studio)没有设置“加密连接”选项,但使用 SQL Server 配置管理器在 SQL Server 端打开了“强制加密”。客户端不会验证自签名证书,并将成功连接加密连接。

问题

  1. 在服务器端强制执行加密时,为什么客户端不尝试验证 SQL Server 自签名证书?为什么客户端只在客户端强制加密时验证自签名证书?

  2. 如果服务器端加密没有在客户端进行证书身份验证,那么使用 CA 签名证书有什么意义?

更准确地说:当仅打开服务器端加密时,为什么客户端(Mgmt Studio)不尝试验证/验证证书(无论是自签名/CA 签名)?当客户端加密(“加密连接”)打开时,为什么客户端只对服务器提供的证书进行身份验证/验证?

我添加了一个签名证书(由内部 CA 签名)用于服务器端加密。这需要在客户端计算机上安装内部 CA 证书(到受信任的根 CA),但我没有这样做。但是,当服务器端加密打开时,客户端(mgmt studio)仍然连接成功。

authentication sql-server encryption connections certificate

5
推荐指数
1
解决办法
8235
查看次数

我可以控制 SQL Server 使用哪种算法来散列对称密钥密码

在问我的问题之前,我将首先描述问题/原因:

如果您在 SQL 中使用对称密钥来加密数据。这可以设置如下:

CREATE MASTER KEY ENCRYPTION BY PASSWORD='password';
CREATE CERTIFICATE My_Certificate AUTHORIZATION [dbo] WITH SUBJECT = 'My Certificate'
CREATE SYMMETRIC KEY My_Key AUTHORIZATION [dbo] ENCRYPTION BY PASSWORD='CertificatePassword' WITH IDENTITY_VALUE = 'My Key', ALGORITHM = AES_256, KEY_SOURCE = '12345-AABB-1234-BBAA' ENCRYPTION BY CERTIFICATE My_Certificate;My_Certificate
Run Code Online (Sandbox Code Playgroud)

然后可以将其与 de/encryptbykey 函数一起使用以加密数据,反之亦然。

问题是在 SQL Server 2016(或以前版本)上加密的数据如果移动到 SQL Server 2017(重新应用该证书后)将无法访问。

这看起来是 SQL Server 2017 的问题,请参阅:https : //support.microsoft.com/en-us/help/4053407/sql-server-2017-cannot-decrypt-data-encrypted-by-earlier-versions

建议的修复是确保您已安装 CU2 并全局启用跟踪标志 #4631

我的问题是:是否可以(如果可以的话)指定应该使用哪种散列算法。

例如,我可以告诉 SQL 在加密我的证书时使用 sha2_256 吗?

sql-server encryption sql-server-2017 symmetric-key

5
推荐指数
1
解决办法
480
查看次数

SQL Server 2005 加密数据库无需恢复密钥即可在新 PC 上运行!

有些东西告诉我这不正常。

让我从头开始。在 SQL Server Express 2005 中,我需要加密一列。我做了以下事情。

CREATE MASTER KEY ENCRYPTION
BY PASSWORD ='blahblah'; 

CREATE CERTIFICATE my_certificate
ENCRYPTION BY PASSWORD = 'blahblah'
WITH SUBJECT = 'Password',
EXPIRY_DATE = '12/31/2099';

CREATE SYMMETRIC KEY my_symmetric_key
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE my_certificate;
Run Code Online (Sandbox Code Playgroud)

我创建了加密、解密列的程序,一切正常。

然后我将数据库(SQL Server 2005,混合模式)恢复到一台装有 SQL Server 2008 Express 的新 PC 上。

在没有恢复密钥和证书的情况下,我启动了我的应用程序,它使用存储过程来加密/解密,令人惊讶的是,一切都在新数据库中工作!!我可以成功解密以前加密的数据。

这正常吗??

那么备份密钥和证书有什么用呢?

提前谢谢

sql-server encryption

4
推荐指数
1
解决办法
221
查看次数

EncryptByPassPhrase() 的输出相对于输入有多长?

我正在开始一个加密项目EncryptByPassPhrase(),主要使用VARCHAR值。自然地,加密值比原始值长。是否有一个公式可以用来计算创建新VARBINARY字段需要多长时间,以便保留原始VARCHAR字段的任何可能值?

例如,我检查的第一个字段的长度值最多为 37 个字符,加密值最多为 100 个字节;另一个值最多 50 个字符,加密值最多 124 个字节。但是,短至两个或三个字符的值可以加密到 76 个字节。如果我将新字段的大小设置为 75 + X 字节,我是否有空间存储长度为 X 或更短的任何可能文本值的加密版本?

sql-server encryption sql-server-2014

4
推荐指数
1
解决办法
3107
查看次数

任何人都可以为所有使用 SQL Server 2016 标准版的用户数据库推荐一种加密方法吗?

我们的客户坚持要求我们现在加密他们所有的 SQL Server 静态数据,其中必须包括 tempdb。我想我有以下选择——

  • Bitlocker 整个驱动器
  • TDE(但企业版的成本打破了我们对这些客户的支持模式!)
  • 始终加密(但更像是 GDPR/个人信息解决方案,不适用于整个数据库)——然后不能“通配符”搜索这些字段,这是一项要求。
  • EFS 磁盘上的用户数据库位置
  • 一些进行 SQL Server 加密的第三方应用程序
  • 其他的?

感谢任何建议(仅适用于 SQL Server 2016标准版)

sql-server encryption standard-edition sql-server-2016

4
推荐指数
1
解决办法
882
查看次数

如何更改 SQL Server 主密钥密码?

我创建了一个主密钥,然后创建了一个证书并加密了我的数据库。

CREATE MASTER KEY ENCRYPTION
BY PASSWORD='A Very Strong Password';
GO

CREATE CERTIFICATE foo
WITH 
SUBJECT='Database Encryption for Multi';
GO

USE mydatabase
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE foo;
GO

ALTER DATABASE mydatabase SET ENCRYPTION ON;
GO
Run Code Online (Sandbox Code Playgroud)

如何更改主密钥密码?

谢谢

encryption sql-server-2012 transparent-data-encryption

4
推荐指数
1
解决办法
6242
查看次数