2007~2011/SQL Server2010.03.22 14:38

SQL Server 2008 환경에서 VIEW 생성 시, Encryption(암호화) 옵션을 사용할 경우 볼 수 있는 여러가지 상황들을 정리하였습니다.

USE LAIGO;
GO

-- 암호화 된 뷰를 생성합니다.
CREATE VIEW INFO_LAIGO WITH ENCRYPTION
AS
SELECT * FROM MyTempTable

-- 일반 뷰를 생성합니다.
CREATE VIEW INFO_JOB
AS
SELECT * FROM MyTempTable

-- SSMS 개체 탐색기로 확인하면 아래와 같이 암호화 된 뷰에 자물쇠 아이콘을 볼 수 있습니다.



-- 뷰의 정의 내역을 확인합니다.
SP_HELPTEXT 'INFO_LAIGO'
개체 'INFO_LAIGO'의 텍스트가 암호화되었습니다.


-- 해당 view 의 정의된 내용을 확인해 보지만 encrypted 값이 1로 설정되어 있으며 내용이 보이지 않습니다.
select * from sys.syscomments where object_id('INFO_LAIGO') = id



-- 종속된 테이블 이름은 확인이 가능합니다.
sp_depends 'INFO_LAIGO'
현재 데이터베이스에서 지정한 개체가 다음 개체를 참조합니다.
name                type                         updated    selected    column
----------------------------------------------------------------------
dbo.MyTempTable     user table         no            yes          값필드


-- 혹시 SQL Server Profiler 를 통해서 쿼리를 확인해 보면?
SELECT * FROM INFO_LAIGO
- 결과는 'SELECT * FROM INFO_LAIGO'


-- ALTER VIEW 를 통해 수정할 수 있을까요?
ALTER VIEW INFO_LAIGO
AS
SELECT * FROM TEST
네, 정상적으로 명령이 완료되었습니다. 기존 정보는 모두 사라지고 새로운 쿼리로 업데이트 되었습니다.
Encrpytion 인자를 부여하지 않았으므로 암호화는 해제됩니다.



[참고자료]
CREATE VIEW (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms187956.aspx

sp_depends (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms189487.aspx

sp_helptext (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms176112.aspx


작성자 : Lai Go / 작성일자 : 2010.03.22

Posted by Lai Go