到目前为止,我所掌握的信息是,我可以简单地执行以下操作来创建用于 tde 的有效证书。如果我可以做到这一点,那么使用密码 = 加密选项有什么好处或优势?
相反,为什么不使用这种简单的语法而不是使用密码或使用 FROM BINARY 语法来制作证书呢?
Create Certificate tdeCert WITH Subject = 'My tde certificate'
到目前为止,我所掌握的信息是,我可以简单地执行以下操作来创建用于 tde 的有效证书。如果我可以做到这一点,那么使用密码 = 加密选项有什么好处或优势?
相反,为什么不使用这种简单的语法而不是使用密码或使用 FROM BINARY 语法来制作证书呢?
Create Certificate tdeCert WITH Subject = 'My tde certificate'
我想知道如何正确地停止 Dataguard 配置以便在备用数据库上执行一系列测试。事实证明,我有一个包含两个 Oracle 11gR2 数据库的环境,一个主数据库,另一个物理备用数据库位于远程位置 (DR),事实是我必须执行一些压力测试,修改一些逻辑结构,最重要的是,将 TDE 应用到列级别并在应用后测量性能,所有这些操作我都想在物理备用数据库中执行,因为它非常关键,无法停止生产数据库。因此,正如我所说,我们的想法是暂时停止 Dataguard,在待机状态下执行所有操作,然后将所有内容恢复到以前的状态。我应该采取哪些步骤来执行相关任务?
我无法在 oracle 19c 中创建主密钥...我在 sqlnet.ora 中将参数设置为:
WALLET_LOCATION=
(SOURCE=
(METHOD=file)
(METHOD_DATA=
(DIRECTORY=/opt/oracle/product/19c/db_home/admin/ALF/wallet/tde)))
还要设置参数 TDE_CONFIGURATION:
ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE" scope=both;
在我重新启动 oracle 并执行以下命令后:
alter session set container=CDB$ROOT;
administer key management create keystore identified by "mypassword";
administer key management set keystore OPEN identified by "mypassword";
并尝试创建主密钥:
ADMINISTER KEY MANAGEMENT SET KEY USING TAG 'master key' IDENTIFIED BY "mypassword" WITH BACKUP USING 'masterbackup';
而且我总是收到以下错误:
ERROR at line 1:
ORA-28362: master key not found
你知道,我如何解决这个问题吗?虽然,我按照指令执行了命令......谢谢。
我希望在 MySQL 5.6 数据库上执行实时 I/O 加密和解密。我有几个问题要了解透明日期加密(TDE):注意:我使用的是阿里云
我很感激这方面的任何帮助
我正在启动一个加密数据库文件的项目。我通过以下方式创建了一个主密钥和一个证书:
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Master_K3y';
GO
CREATE CERTIFICATE MY_DB_CERT WITH SUBJECT = 'Some subject here';
GO
我有两个选项来备份证书:使用或不使用私钥。我不知道这个私钥是从哪里来的,因为我没有提供。也许它是在创建证书时为我生成的?
无论如何,我的第一个备份语句没有提供私钥子句。
USE master;
GO
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'Master_K3y';
GO
BACKUP MASTER KEY TO FILE = 'MASTER_KEY.bak'
ENCRYPTION BY PASSWORD = 'yeK_r3tsaM';
GO
BACKUP CERTIFICATE MY_DB_CERT TO FILE = 'MY_DB_CERT.bak';
GO
我想知道这是否足以恢复工作状态下的所有内容,比如在移动到新服务器时?如果不是,那么在没有(?)私钥的情况下备份证书的用例是什么?
我正在尝试备份 TDE 数据库的主密钥,但 SQL Server 说没有。这有点奇怪,但我确定我只是做错了什么。我是服务器上的系统管理员,所以我应该能够看到所有内容。
这是失败的语句:
USE [my_db];
BACKUP MASTER KEY
TO FILE = 'C:\master_key'
ENCRYPTION BY PASSWORD = 'some_killer_password';
并返回错误消息:
消息 15151,级别 16,状态 1,第 11 行
找不到对称密钥“主密钥”,因为它不存在或您没有权限。
我使用以下内容查看了有关数据库加密密钥和相关证书的详细信息,但是sys.certificates
表中的证书详细信息为空。
USE [my_db];
SELECT DatabaseName = d.name
, ddek.encryptor_type
, ddek.opened_date
, c.name
, c.cert_serial_number
, c.pvt_key_encryption_type_desc
, c.subject
FROM sys.dm_database_encryption_keys ddek
INNER JOIN sys.databases d ON ddek.database_id = d.database_id
LEFT JOIN sys.certificates c ON ddek.encryptor_thumbprint = c.thumbprint
WHERE d.name <> 'tempdb' /* tempdb is auto-encrypted by SQL Server */
╔══════════════╦════════════════╦═════════════════ ════════╦══════╦════════════════════╦═════════════ ═════════════════╦═════════╗ ║ DatabaseName ║ encryptor_type ║ opens_date ║ 名称 ║ cert_serial_number ║ pvt_key_encryption_type_desc ║ 主题 ║ ╠══════════════╬════════════════╬═════════════════ ════════╬══════╬════════════════════╬═════════════ ═════════════════╬═════════╣ ║ my_db ║ 证书 ║ 2017-09-20 11:24:13.590 ║ NULL ║ NULL ║ NULL ║ NULL ║ ╚══════════════╩════════════════╩═════════════════ ════════╩══════╩════════════════════╩═════════════ ═════════════════╩═════════╝
那么,我可以在 中看到数据库加密密钥[my_db]
,并且可以看到它是由证书加密的,但是证书不存在?
公平警告,我对数据库加密非常陌生。现在我们在服务器之间备份/恢复数据库的过程中使用以下语句交换证书:
ALTER DATABASE ENCRYPTION KEY REGENERATE
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE....
这工作得很好,但问题是通过此声明更改证书所需的时间。我注意到更改大于 100GB 的数据库的证书可能需要一个多小时。
是否有更快的方法来更改任何人都知道的 TDE 证书?
我们使用 SQL Server 2012 企业版和透明数据加密 (TDE)。Microsoft 有一个命令可以让您更改数据库“ALTER DATABASE ENCRYPTION KEY”的加密。文档页面为您提供了有用的命令,但没有详细说明过程。我把这个问题贴在了页面的底部,但我想我可能会在这里得到更快的答案。
当我运行此命令时,磁盘上的数据是否一直未加密?即此命令是否首先使用旧密钥/证书解密所有数据,然后使用新密钥/证书重新加密,这意味着数据在过程中的某个时刻未加密。或者,这个过程是一个管道,它接收用旧密钥加密的数据并吐出用新密钥加密的数据,并且数据永远不会在任何时候未加密地存储在磁盘上。
奖金问题,在密钥更改期间日志文件会发生什么?
微软文档 https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-database-encryption-key-transact-sql
我正在为 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;
输出:
database encryptor cert_name
tempdb ASYMMETRIC KEY NULL
TDE_Test CERTIFICATE TestZert3
查询加密状态:
select db_name(database_id), encryption_state,
percent_complete, key_algorithm, key_length
from sys.dm_database_encryption_keys
输出:
database encrypt_state percent_complete key_algorithm
tempdb 3 0 AES 256
TDE_Test 3 0 AES 256
为什么 complet_percent 为 0?
更换即将到期的证书的最佳方法是什么?应避免停机。数据库大小为 100GB。