2017-09-11 17 views
0

우리는 동시에 많은 SQL 임시 테이블 (#tmp)을 사용하는 데이터베이스에서 "항상 암호화 된"열을 구현하는 솔루션을 찾고 있습니다.SQL 2016 항상 암호화 된 열과 SQL 임시 테이블

#temp 테이블을 사용하여 대체 경로를 탐색했지만 시간/비용 측면에서 앱에 큰 영향을 줄 수 있습니다.

"insert into #tmp select from my_table"과 같은 쿼리 작성 방법을 찾았습니까? my_table에 AE 열이 포함되어 있습니까?

동일한 CMK 및 CEK를 tempdb 데이터베이스에 적용하여 #tmp 테이블과 동일한 구조를 my_table의 구조로 만들 수있었습니다. 두 개의 서로 다른 데이터베이스에있는 테이블을 가지고 있으면 데이터 전송을 방해하는 것 같습니다.

나는 모든 암호화 키에 액세스 할 수있는 클라이언트 응용 프로그램 (C#, VB 등)이 포함 된 솔루션이 아니라 SQL 솔루션을 찾고 있습니다.

답변

0

설명하는 방식으로 삽입 작업이 암호화 된 열에 대해 지원되지 않습니다.

당신은 유사한 결과를 달성하기 위해 클라이언트 응용 프로그램을 작성해야합니다

을 "MY_TABLE 선택 #tmp에 삽입". 그 길을 탐색하고 싶다면 코멘트를 남겨주세요. 나는 당신을 안내 할 수 있습니다.


다음과 같이 C#에서 비슷한 것을 얻을 수 있어야합니다. 동일한 SQL Server 인스턴스에 암호화 된 테이블과 일반 텍스트 테이블이 경우 SqlBulkCopy.WriteToServer(IDataReader) 방법

를 사용하여 임시 테이블에로드 SqlBulkCopy의를 사용

  • SqlDataReader 개체의 데이터를로드 할 수 select * from encryptedTable를 수행합니다 그런 다음 일반 텍스트 데이터와 해당 암호문을 검사 할 수 있기 때문에 정보를 SQL Server 관리자에게 누설 할 수 있음을 알고 있어야합니다.

+0

감사합니다. Nikhil - SQL에서 처리 시간을 줄이기 위해 #tmp에 삽입을 사용하고 있습니다. 클라이언트 응용 프로그램을 사용하면 아마도이 시간이 증가 할 것입니다. 그렇지 않습니까? 실행 시간이 비슷한 경우 다음을 조사하고 싶습니다. –

+0

임시 테이블 대신 CTE를 사용하십시오. – Namphibian

+0

클라이언트 측에서는 SQL Server 외부에서 암호화 작업이 수행되므로 암호화 및 해독을위한 추가 네트워크 왕복 비용과 암호화 오버 헤드가 발생합니다. C# app를 사용하여 성능을 분석하고 사용 사례에 대해 허용 가능한지 여부를 결정합니다. 나는 당신이 C# @ andrei.toma로 그것을 할 방법을 포함하도록 답을 수정했다. –