DataSet.xsd를 활용해서 DB(MSSQL) 접근 과정에서의 문제를 해결하고자 글을 쓰게 됐습니다.
DataSet.xsd는 DB에 연결하여 테이블 구조를 자동으로 작성 해주는 기능이 있습니다. 해당 기능을 사용하는 경우 DB 연결을 위한 연결 문자열이 프로젝트 내 Settings에 저장되는 로직이 포함되어 있습니다.
기존 방식에서는 연결 문자열을 암호화 해 관리했기 때문에 문제가 없었지만, 이 방법 대로라면 Settings에 평문이 저장되는 관계로 보안이 허술해질 수 있다는 판단입니다. 그래서 Settings에 저장된 연결 문자열을 지우고 아래와 같이 프로젝트 코드를 변경하였습니다.
- DataSet.Designer.cs 파일을 보면 InitConnection() 함수 내에 ConnectionString을 초기화 하는 코드가 들어있습니다.
- 해당 연결 문자열을 Settings의 연결 문자열에서 기존 방식의 암호화된 연결 문자열을 복호화 해 넘기는 방식으로 코드를 변경합니다.
이 방법으로 런타임의 문제는 해결하였으나, 이렇게 Settings에 저장된 연결 문자열을 지우게 되면 데이터셋 디자이너에서 제공하는 기능에 오류가 발생합니다.
아래는 DB에 연결해 자동으로 구조가 만들어진 테이블에서 오른쪽마우스(context-menu)/구성 기능을 사용했을 때 발생하는 문제입니다.
연결해서 접근해야 하는데 연결 문자열이 없으니 이런 오류가 발생하는 것이 자명함과는 별개로, 암호화된 연결 문자열을 사용하면서도 디자이너 기능을 사용함에 있어 위와 같은 문제를 경험하지 않으려면 어떻게 해야하는지 의견을 여쭙고자 합니다.
- 데이터 셋 디자이너에서 프로젝트의 Settings를 사용하지 않고 코드에서 암호화 된 문자열을 사용하도록 하는 방법이 있는지?
- 위와 같은 방법이 없다면 개발 시점엔 평문을, 릴리즈 과정에서는 암호화된 문자열을 사용하도록 구성하는 것이 옳아 보이는데, 이게 최선의 방법인지?
- DataSet.xsd를 사용할 때 연결 문자열 관리에 있어 주로 사용하는 방법이 있는지?
정도 여쭙고 싶습니다.