gpt4 book ai didi

sql - 在 MS SQL Server 中使用 truecrypt

转载 作者:行者123 更新时间:2023-12-02 03:37:13 25 4
gpt4 key购买 nike

我正在尝试在 Truecrypt 卷上创建一个 MS SQL Server 数据库。我需要我的系统具有以下属性:如果未安装 Truecrypt 卷,则无法访问数据库或数据库日志文件中的数据。我正在执行以下操作来创建数据库:

CREATE DATABASE test1 CONTAINMENT=PARTIAL ON (NAME='test1_data', FILENAME='D:\SqlData') LOG ON (NAME='test1_log', FILENAME='D:\SQLDataLog');
go

其中 D: 是我安装的 Trucrypt 卷。这似乎工作正常,因为它创建了指定的文件和可用的数据库。但是,我不确定它是否真的安全。我认为它正在将数据存储在 D: 卷以外的某个地方。我可以执行以下操作:

use test1;
go
CREATE TABLE Persons (ID int, name varchar(255));
go

INSERT INTO Persons VALUES (1, 'Jason');
go

然后关闭我的数据库客户端,卸载卷,重新打开客户端 (sqlcmd),然后执行:

use test1;
go
SELECT * FROM Persons;
go

然后我得到了我输入的数据。显然这意味着在 Truecrypt 卷之外发生了一些存储。我是在做错什么、误解了什么,还是我正在尝试做的事情在 MS SQL Server 上不可行?

最佳答案

此解决方案不安全。在各种情况下(例如,在排序或散列过程中),SQL Server 可能会自动将数据溢出到 tempdb,因此您最终可能会泄露想要保护的内容。在这种情况下,我会离开 TrueCrypt,只使用 Transparent Database Encryption如果可能(在第一个数据库加密后,它也会自动加密 tempdb)。或者,如果您真的想使用 TC,还可以使用 TrueCrypt 保护 tempdb,并确保没有人会强行卸载这些卷。否则,您会要求数据库损坏和数据丢失。

关于sql - 在 MS SQL Server 中使用 truecrypt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22617300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com