我的操作系统是 Windows 7。
请帮我。
谢谢
我的客户经常运行我们将数据库从 prod 环境移动到较低环境的过程(使用 prod 数据库刷新 QA 等)。这些 DB 上有数据库主密钥。我们将这些重新加密到目标服务器上的服务主密钥中没有问题,但这是烦人的部分:
这本身不是问题。解决方法始终是将 DMK 重新加密为 SMK。我们只想知道它是否已经完成。任何人都有任何技巧吗?
谢谢,埃里克
我了解备份密钥和用户定义的证书的必要性,但是我们是否有任何理由应该备份这些系统创建的证书?
我们有一个两节点的 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
我意识到这是一种奇怪的行为,我想知道在使用 SQL Server 生成的自签名证书时它是否应该以这种方式工作。
设置了“加密连接”选项的客户端(Management Studio),客户端将在 SQL Server 端验证自签名证书并失败,因为自签名证书不受信任
客户端 (Management Studio)没有设置“加密连接”选项,但使用 SQL Server 配置管理器在 SQL Server 端打开了“强制加密”。客户端不会验证自签名证书,并将成功连接加密连接。
在服务器端强制执行加密时,为什么客户端不尝试验证 SQL Server 自签名证书?为什么客户端只在客户端强制加密时验证自签名证书?
如果服务器端加密没有在客户端进行证书身份验证,那么使用 CA 签名证书有什么意义?
更准确地说:当仅打开服务器端加密时,为什么客户端(Mgmt Studio)不尝试验证/验证证书(无论是自签名/CA 签名)?当客户端加密(“加密连接”)打开时,为什么客户端只对服务器提供的证书进行身份验证/验证?
我添加了一个签名证书(由内部 CA 签名)用于服务器端加密。这需要在客户端计算机上安装内部 CA 证书(到受信任的根 CA),但我没有这样做。但是,当服务器端加密打开时,客户端(mgmt studio)仍然连接成功。
authentication sql-server encryption connections certificate
在问我的问题之前,我将首先描述问题/原因:
如果您在 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 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 上。
在没有恢复密钥和证书的情况下,我启动了我的应用程序,它使用存储过程来加密/解密,令人惊讶的是,一切都在新数据库中工作!!我可以成功解密以前加密的数据。
这正常吗??
那么备份密钥和证书有什么用呢?
提前谢谢
我正在开始一个加密项目EncryptByPassPhrase(),主要使用VARCHAR值。自然地,加密值比原始值长。是否有一个公式可以用来计算创建新VARBINARY字段需要多长时间,以便保留原始VARCHAR字段的任何可能值?
例如,我检查的第一个字段的长度值最多为 37 个字符,加密值最多为 100 个字节;另一个值最多 50 个字符,加密值最多 124 个字节。但是,短至两个或三个字符的值可以加密到 76 个字节。如果我将新字段的大小设置为 75 + X 字节,我是否有空间存储长度为 X 或更短的任何可能文本值的加密版本?
我们的客户坚持要求我们现在加密他们所有的 SQL Server 静态数据,其中必须包括 tempdb。我想我有以下选择——
感谢任何建议(仅适用于 SQL Server 2016标准版)
我创建了一个主密钥,然后创建了一个证书并加密了我的数据库。
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 ×10
sql-server ×8
certificate ×2
connections ×2
backup ×1
command-line ×1
mysql ×1
mysql-5 ×1
mysqldump ×1
security ×1
t-sql ×1