MSSQL 환경에서 SP 개발시 지원하지 않는 데이터 암복호화 관련 기능을 추가하고자 할때 유용한 기능으로 직접 작성한 DLL Library를 연동할 때 이용된다. 실제 프로젝트 진행시 보안 이슈로 인해 Client로부터 전달 받은 데이터의 복호화를 WAS에서 진행하지 않고 그대로 DB에 전달, SP내에서 복호화 하도록 하였습니다. 이후 자주 사용할 것으로 판된되어 정리해 둔다.
개발환경
-VisualStudio 2017
-MSSQL EXP 2017
-DotNetFramework 4.6.1
CLR DLL Library 생성
STEP1
-VisualStudio에서 SQL Server -> SQL Server 데이터베이스 프로젝트 생성
STEP2
-솔루션 탐색기에서 추가 -> 새항목 -> SQL Server -> SQL CLR C# ->SQL CLR C#에서 사용자 정의 함수 추가
(해당 화면에서 저장프로시저 또는 사용자 정의 형식끼리 용도에 따라 추가할 수 있음)
-SQLGetKeys.cs를 추가
STEP3
-예제는 간단하게 두문자열을 합치는 기능으로 적용 하였다.
빌드하면 아래 경로에 적용한 SQLBaseFunctions.dll 파일이 생성된다. 해당 파일을 원하는 경로에 복사 후 MSSQL Assembly에
등록해 사용할 수 있다.
*빌드시 유의사항
생성할 CLR DLL Library는 안전여부를 떠나 Win32 등을 이용할 것이므로 UNSAFE 권한 수준으로 적용할 것이며, 프로젝트 -> SQLBaseFunctions 속성 -> SQLCLR 탭에서 권한수준을 'UNSAFE'로 선택하여 빌드한다. 또는 외부접근을 허용할 경우 EXTERNAL_ACCESS 옵션을 적용하여 외부접근을 허용할 수 있도록 한다. (*나의 경우엔 EXTERNAL_ACCESS 적용)