2014-03-24 7 views
3

Truecrypt 볼륨에 MS SQL Server 데이터베이스를 만들려고합니다. 내 시스템에 다음과 같은 속성이 있어야합니다. Truecrypt 볼륨이 마운트되지 않은 경우 데이터베이스 또는 데이터베이스 로그 파일의 데이터에 액세스 할 수 없습니다. 데이터베이스를 생성하기 위해 다음을 수행합니다.MS SQL 서버에서 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 
SELECT * FROM Persons; 
go 

그리고 내가 넣어 데이터를 얻을 :.

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

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

그런 다음 클라이언트 (SQLCMD를) 다시 볼륨을 마운트 해제, 내 DB 클라이언트를 종료하고, 다음 명령을 실행합니다 : 나는 다음을 수행 할 수 있습니다 이것은 Truecrypt 볼륨 외부에서 약간의 스토리지가 발생했음을 의미합니다. 내가 뭔가 잘못하고 있거나, 오해하고 있거나, MS SQL Server에서 실용적이지 않다고 생각하는 것입니까?

+0

SQL Server에서 파일을 열어두면 볼륨을 닫히기 전에 truecrypt가 많이 불평 할 것이라고 생각합니다. 정말로 마운트 해제 된 것이 확실합니까? –

+0

@DigitalChris 불만을 제기하여 강제로 마운트 해제하려고했는지 묻습니다. 내가 언 마운트를 강요하고 언 마운트 된 것 같습니다. D : 볼륨은 Truecrypt 또는 파일 탐색기에서 볼 수 없습니다. – jcrudy

+1

이 파일을 실행하여 파일이 실제로 어디 있는지 확인하십시오. USE Test1 SELECT name, filename FROM sys.sysfiles' –

답변

1

이 솔루션은 안전하지 않습니다. 다양한 시나리오 (예 : 정렬 또는 해싱 중)에서 SQL Server가 tempdb에 데이터를 자동으로 유출 할 수 있으므로 보호하려는 콘텐츠가 누출 될 수 있습니다. 이 경우 TrueCrypt에서 물러나서 가능한 경우 Transparent Database Encryption을 사용하십시오 (첫 번째 데이터베이스가 암호화 된 후 tempdb를 자동으로 암호화 함). 또는 TC를 실제로 사용하려면 TrueCrypt로 tempdb를 보호하고 아무도 강제로 볼륨을 분리하지 않도록하십시오. 그렇지 않으면 데이터베이스 손상 및 데이터 손실을 요청합니다.

0

DBCC DROPCLEANBUFFERS을 사용하여 캐시를 지울 수 있습니다. 그러면 읽기가 실패합니다. CHECKPOINT은 디스크에 쓰기 작업을 강제 수행하고 기록 할 내용이 없더라도 항상 로그에 기록합니다. 그것은 또한 실패 할 것이다.

또한 SQL Server는 tempdb와 해당 오류 로그에 기록합니다. 어쩌면 다른 곳에서도 마찬가지 일 것입니다. 프로세스 탐색기를 사용하여 sqlservr.exe가 더 많은 위치를 찾아야하는 열린 파일 핸들을 나열하십시오.

여전히 사용자 데이터를 유출 할 수있는 주요 장소는 tempdb입니다.

TDE 사용에 대한 Endrju의 제안은 조사 할 가치가 있지만 tempdb 로의 유출을 막을 수는 없는지 의심 스럽습니다. tempdb는 임시 테이블, 정렬 버퍼, 해시 버퍼, CHECKDB 임시 데이터에 사용됩니다.

마운트 해제하고 다시 탑재하면 모든 기존 파일 핸들이 무효화되고 SQL Server는 더 이상 데이터베이스를 사용할 수 없습니다. 오프라인과 온라인으로 가져와야합니다. 그러나 SQL Server의 충돌이 일관 적이기 때문에 언제든지 언 마운트하는 것이 안전해야합니다. 즉시 전원 손실은 안전합니다.

+0

TDE로 첫 번째 데이터베이스를 암호화하면 tempdb가 자동으로 암호화됩니다. – Endrju

+1

@ 언두 알 수 있습니다. 이미 TDE에 +1을 받았습니다. – usr

+0

감사합니다. 백업도 암호화되므로이 중요한 부분도 보호됩니다. 그것은 불쌍한 엔터프라이즈 전용 기능입니다 : ( – Endrju

관련 문제