상세 컨텐츠

본문 제목

Security

개발

by Yo구르트 2011. 5. 25. 17:44

본문

728x90
<<<<보안>>>>

사용자가 SQL Server에
연결할 수 있는 방법   
                                    SQL Server의 인증모드

Window 인증방법           ─────────    Window인증모드
                                         │
                                         └──────                                                 
SQL Server 인증방법      ─────────     혼합모드

보안 -> 서버역할
- sysadmin : 모든 권한 가짐

WITH CREDENTIAL = OS관리자


Administrator
SQL Server(~2005)
: administrators 그룸의 내장된 구성원, 운영체제(OS)관리, SQL(Builtin\Administrators자동생성)서버 관리(sysadmin), 모든 DBO 관리(DB_Owner)

SQL Server(2008)
: administrators 그룸의 내장된 구성원, SQL서버 관리자 등록(sysadmin), 모든 DBO 관리(DB_Owner)
- 노출위험 방지


테이터 암호화

CREATE CERTIFICATE Cert_JUMIN                                         
   ENCRYPTION BY PASSWORD = 'P@ssw0rd'
   WITH SUBJECT = '주민번호 인증서',
   EXPIRY_DATE = '2010/12/31'
GO
CREATE SYMMETRIC KEY JUMIN_KEY                                      
 WITH ALGORITHM = AES_256
    ENCRYPTION BY CERTIFICATE Cert_JUMIN
GO   
OPEN SYMMETRIC KEY JUMIN_KEY                                         
 DECRYPTION BY CERTIFICATE Cert_JUMIN
 WITH PASSWORD = 'P@ssw0rd'
GO 
CREATE TABLE 고객 (고객번호 INT IDENTITY PRIMARY KEY,               
       고객이름 VARCHAR(20) NOT NULL,
       주민번호 VARBINARY(128) )
GO
INSERT INTO 고객(고객이름, 주민번호)                                     
VALUES ( '박태환', ENCRYPTBYKEY(Key_GUID('JUMIN_KEY'), '890927-0000001'))
GO
SELECT * FROM 고객                                                    
GO
SELECT 고객번호, 고객이름,                                             
 CONVERT (VARCHAR, DECRYPTBYKEY(주민번호)) AS '주민번호'
FROM 고객
GO
CREATE TABLE 고객2 (고객번호 INT IDENTITY PRIMARY KEY,             
        고객이름 VARCHAR(20) NOT NULL,
        주민번호 CHAR(14))
GO
INSERT INTO 고객2(고객이름, 주민번호) VALUES ( '박태환', '890927-0000001')
GO
SELECT * FROM 고객2                        
GO
ALTER TABLE 고객2                                                   
 ADD 주민번호암호 VARBINARY(128)
GO 
UPDATE 고객2                                                        
SET 주민번호암호
    = ENCRYPTBYKEY(Key_GUID('JUMIN_KEY'), 주민번호);  -- 암호화
GO
SELECT * FROM 고객2
GO
ALTER TABLE 고객2 DROP COLUMN 주민번호    
EXEC SP_RENAME '고객2.주민번호암호', '주민번호', 'COLUMN'
GO
SELECT * FROM 고객2                                                    
GO
SELECT 고객번호, 고객이름, 주민번호,
 CONVERT (VARCHAR, DECRYPTBYKEY(주민번호)) AS '주민번호'
FROM 고객2
GO
CLOSE SYMMETRIC KEY JUMIN_KEY           
                           
--- 새로운 세션                                                      
SELECT 고객번호, 고객이름,
CONVERT (VARCHAR, DECRYPTBYKEY(주민번호)) AS '주민번호'
FROM 고객2
GO
OPEN SYMMETRIC KEY JUMIN_KEY                                      
 DECRYPTION BY CERTIFICATE Cert_JUMIN   -- 복구
 WITH PASSWORD = 'P@ssw0rd'
GO
SELECT 고객번호, 고객이름,
CONVERT (VARCHAR, DECRYPTBYKEY(주민번호)) AS '주민번호'
FROM 고객2


- 각 필드 암호화

728x90

'개발' 카테고리의 다른 글

Transferring Data  (0) 2011.05.26
Monitoring  (0) 2011.05.26
Backup  (0) 2011.05.25
Schema  (0) 2011.05.25
[안드로이드] EditText 생성하기  (0) 2011.05.23

관련글 더보기

댓글 영역