我必须承认我是一名程序员,即使我没有相同的背景,我也正在努力学习一些有关 DBA 的知识。我试图了解 SQL Server 上的安全性提供了什么以及如何使用静态数据加密。
我的问题是,如果托管 SQL Server 实例的计算机遭到未经授权的访问,加密将如何保护数据?我的猜测根本不是。
我的意思是,假设 SQL Server 在放置在数据中心并“连接”到互联网的虚拟机上运行。如果攻击者将获得虚拟机的控制权,那么我认为静态数据保护的作用就很小。
事实上,攻击者可以获得管理员权限(作为操作系统用户),重置 SQL Server 凭据并以“sa”身份登录,然后即使 SQL Server 文件通常是加密的,他也可以以纯文本格式导出它们。
在这种情况下,是否有任何方法可以保护 SQL Server 的安全,或者如果操作系统级别遭到破坏,SQL Server 将被视为“丢失”?
为了加密 SQL 数据库,我运行以下命令:
CREATE CERTIFICATE <certname> ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>'
WITH SUBJECT = 'certificate subject', EXPIRY_DATE = '20291031';
go
USE <databasetoencrypt>;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE <certname>;
GO
Run Code Online (Sandbox Code Playgroud)
尝试执行CREATE DATABASE ENCRYPTION KEY命令时,我收到此消息,但不知道该怎么做:
无法使用证书“名称”,因为其私钥不存在或不受数据库主密钥的保护。SQL Server 需要能够自动访问用于此操作的证书的私钥。
当我ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>'在CREATE CERTIFICATE命令中省略期间时,它会起作用。但是,我需要创建一个受密码保护的证书。
你有什么主意吗?!谢谢你。
Microsoft SQL Server 2016 Service Pack 1 是否也向标准版添加了对 TDE(透明数据加密)的支持?
根据数据库引擎中的新增功能 - SQL Server 2016和大事:SQL Server 2016 Service Pack 1,看起来许多企业级功能也添加到 SQL Server 2016 标准版中。
但是,关于 TDE 没有明确的答案,我知道 TDE 一直是企业功能,但只是想在提出 SQL Server 2016 SP1 之前确定一下。
任何人都可以参考一份书面/文件证明标准版的 SP1 是否会有 TDE?
非常感谢!
sql-server transparent-data-encryption standard-edition sql-server-2016
我有一个关于大型数据库上的透明数据加密 (TDE) 的问题。当数据库启用 TDE 时,我可以继续访问它吗?具体来说,我可以对数据库执行 SELECT、INSERT 和 UPDATE 操作吗?
我了解 TDE 会加密静态数据,但我不确定这是否会影响加密过程发生时访问数据的能力。我非常感谢那些有 TDE 经验的人提供的任何见解或建议。
先感谢您!
是否有任何文档、测试数据或其他证据表明在数据库上启用 TDE 时并行成本阈值 (CTP) 设置可能会影响性能?在不深入研究所有细节的情况下,我们发现在数据库上启用 TDE 后,基准测试出现了一些显着的性能下降,我们正在寻找可能产生影响的任何设置。CTP 当前设置为默认值 5,我知道这并不理想,所以请抵制对我进行惩罚的冲动。
我们还将添加 CPU 并进一步测试,但如果我们可以通过更改 CTP 或其他设置获得更好的性能,那当然比添加 CPU 更好(由于硬件成本以及每个 CPU 的 SQL Server 许可) .
我正在推动更改 CTP 并再次测试,但我希望看看是否有人已经对其进行了测试,以便我们可以相应地优先考虑要测试的更改。
谢谢!
我已经阅读了很长时间,当数据库启用了 TDE 时,压缩备份似乎并不安全。
是否有人在使用 tde 数据库的压缩备份还原期间遇到错误?
我从未经历过此类错误,但我真的很担心。
似乎问题出在 SQL SERVER 2016 上,因为我使用的是 2012,所以我看不到任何问题。
此外,即使使用MAXTRANSFERSIZE = 131072备份也不压缩。会是什么呢?我正在使用NO CHECKSUM和WITH CHECKSUM两者的尺寸相同。
backup compression sql-server-2012 transparent-data-encryption
何时使用透明数据加密对 tempdb 进行加密?什么配置等导致 tempdb 以这种方式加密?
TDE通过将文件恢复到另一台服务器来防止对数据的未授权访问,因为它需要原始加密证书和主密钥。
如果我使用 TDE 对我的数据库应用了表级加密,并通过正确的身份验证从我的 Windows 应用程序访问数据库。考虑到入侵者正在尝试某种注入技术,我的问题是他收到的是原始数据还是加密数据?或者我们可以使用TDE as an anti-injection technique吗?我的应用程序中的查询可能如下所示:
Dim myQuery="Select * from myTable where some_id='" & txtUserId.Text & "'
Run Code Online (Sandbox Code Playgroud)
这样他们就可以通过提供像sameValue' or 1=1 or '将提供整个数据的文本来注入 sql 。在这种情况下,他是得到加密数据还是实际数据
注意:我不在我的应用程序中使用此类查询,而是在整个应用程序中使用参数化查询和 sp。要求这只是为了澄清。
sql-server sql-injection encryption transparent-data-encryption
我正在为 SQL Server 使用 TDE。查询证书:
select database_name = d.name,
dek.encryptor_type,
cert_name = c.name
from sys.dm_database_encryption_keys dek
left join sys.certificates c
on dek.encryptor_thumbprint = c.thumbprint
inner join sys.databases d
on dek.database_id = d.database_id;
Run Code Online (Sandbox Code Playgroud)
输出:
database encryptor cert_name
tempdb ASYMMETRIC KEY NULL
TDE_Test CERTIFICATE TestZert3
Run Code Online (Sandbox Code Playgroud)
查询加密状态:
select db_name(database_id), encryption_state,
percent_complete, key_algorithm, key_length
from sys.dm_database_encryption_keys
Run Code Online (Sandbox Code Playgroud)
输出:
database encrypt_state percent_complete key_algorithm
tempdb 3 0 AES 256
TDE_Test 3 0 AES 256
Run Code Online (Sandbox Code Playgroud)
为什么complet_percent 为0?
这是我们第一次在至关重要的生产数据库上应用 TDE,我有以下问题。
当 TDE 正在进行时:
相关平台是具有可用性组的 SQL Server 2014 SP2 GDR。
sql-server encryption availability-groups transparent-data-encryption sql-server-2014
transparent-data-encryption ×10
sql-server ×9
encryption ×3
backup ×1
compression ×1
security ×1
tempdb ×1