SQL 테이블을 암호화하는 방법: 먼저 환경을 테스트한 다음 데이터베이스 마스터 키를 생성하고 마지막으로 데이터를 암호화합니다.
sql 서버 테이블 암호화 설정 방법
SQL Server는 데이터베이스 수준 암호화(TDE) 및 열 수준 데이터 암호화를 지원합니다. 데이터베이스 수준 암호화는 데이터베이스에서 수행됩니다. 개발 과정에서 추가 작업이 필요하지 않습니다. 데이터베이스 수준 암호화와 비교할 때 열 수준 데이터 암호화 프로세스는 약간 번거롭고 프로그램에서 몇 가지 추가 작업을 수행해야 합니다. 다음 그림은 SQL Server의 암호화 계층을 보여줍니다. 상위 수준의 암호화는 하위 수준의 암호화를 보호합니다. ① ② ③ ④. 그림에서 데이터를 암호화/해독합니다.
(1) 테스트 환경 설명
SQL Servre 2012 R2를 사용하여 테스트하고 다음 데이터 테이블을 생성합니다.
--테스트용 사용자 테이블 생성
CREATE TABLE TBLUser ( Name nvarchar(30), Password varbinary(1000), ) GO
(2) 데이터베이스 마스터 생성 The key
데이터베이스 마스터 키는 서비스 마스터 키 아래에 있으며 서비스 마스터 키로 암호화됩니다. 이는 데이터베이스 수준 인증서 또는 비대칭 키를 생성하기 위한 암호화를 제공하는 데 사용할 수 있는 데이터베이스 수준 키입니다. 각 데이터베이스에는 T-SQL 문을 통해 생성된 데이터베이스 마스터 키가 하나만 있을 수 있습니다. 구체적인 코드는 다음과 같습니다.
CREATE MASTER KEY ENCRYPTION BY PASSWORD ='passW@ord' GO
(3) 인증서 만들기
암호화를 위한 대칭 비밀 키 인증서를 만듭니다. 구체적인 코드는 다음과 같습니다.
CREATE CERTIFICATE TestCert with SUBJECT = 'Test Certificate' GO
(4) 만들기 대칭 비밀 키
SQL Server 암호화 계층 구조에서 볼 수 있듯이 대칭 키는 암호 또는 기타 대칭 키, 비대칭 키 및 인증서를 통해 생성될 수 있습니다. 이 문서에서는 인증서를 사용하여 테스트용 대칭 비밀 키를 생성합니다. 구체적인 코드는 다음과 같습니다.
CREATE SYMMETRIC KEY TestSymmetric WITH ALGORITHM = AES_256 ENCRYPTION BY CERTIFICATE TestCert GO
(5) 데이터 암호화
먼저 인증서 대칭 비밀 키를 연 다음 ENCRYPTBYKEY 함수를 사용합니다. 데이터를 암호화한 다음 대칭 비밀 키를 닫습니다. 구체적인 코드는 다음과 같습니다.
OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert; INSERT INTO TBLUser values('张三', ENCRYPTBYKEY(Key_Guid(N'TestSymmetric'), '123456')); CLOSE SYMMETRIC KEY TestSymmetric; GO
(6) 암호화된 데이터 보기
SQL을 직접 실행하여 암호화된 데이터를 쿼리해 보면, 비밀번호 내용이 읽을 수 없는 16진수 문자열임을 알 수 있습니다.
SELECT * FROM TBLUser GO
(7) 데이터 복호화
먼저 인증서 대칭 키를 연 다음 DecryptByKey 함수를 사용하여 데이터를 복호화하고 완료 후 대칭 키를 닫습니다. 구체적인 코드는 다음과 같습니다:
OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert; SELECT Name, CAST(DecryptByKey(password) as varchar(100)) Password FROM TBLUser; CLOSE SYMMETRIC KEY TestSymmetric; GO
위 내용은 SQL에서 테이블을 암호화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!