2012-11-09 6 views
6

Microsoft Visual Studio 2010과 Microsoft .NET Framework 4를 사용하여 응용 프로그램을 만듭니다. 응용 프로그램은 Microsoft SQL Server 2008 데이터베이스에 연결합니다. 응용 프로그램은 Microsoft ADO.NET SQL Server 관리 공급자를 사용합니다. 연결이 실패하면 응용 프로그램은 전체 연결 문자열을 포함하여 연결 정보를 기록합니다. 정보는 .config 파일에 일반 텍스트로 저장됩니다..Net 4의 보안 정보 유지

데이터베이스 자격 증명이 안전한지 확인해야합니다.

.config 파일에 어떤 연결 문자열을 추가해야합니까?

. 데이터 원본 = myServerAddress; 초기 카탈로그 = myDataBase; 통합 보안 = SSPI; 보안 정보 유지 = false;

.Data Source = myServerAddress; 초기 카탈로그 = myDataBase; 통합 보안 = SSPI; Persist Security Info = true;

. 데이터 원본 = myServerAddress; 초기 카탈로그 = myDataBase; 사용자 ID = myUsername; 암호 = myPassword; 보안 정보 유지 = false;

. 데이터 원본 = myServerAddress; 초기 카탈로그 = myDataBase; 사용자 ID = myUsername; 암호 = myPassword; Persist Security Info = true;

안내서에 따르면 대답은 'A'입니다. 그러나 제 의견으로는 대답은 'C'입니다. Integrated Security = SSPI를 사용하는 경우 사용자 ID와 암호를 제공 할 필요가 없습니다. 따라서 Persist Security Info = false는 아무 효과가 없습니다.

내가 아는 한 Persist Security Info는 연결 문자열에 사용자 자격 증명이있는 경우에만 적용됩니다.

어느 것이 맞는지 알려주세요. 감사.

답변

5

당신 말이 맞습니다. 보안 정보 유지 = false는 연결 문자열에 제공된 사용자 이름과 암호 인 경우에만 적용됩니다. 그러나 질문은 ".config 파일에 무엇을 저장해야합니까?"이며 "정보가 일반 텍스트로 저장 됨"을 고려할 때 구성 파일에 UID 및 PWD를 저장하면 안됩니다. C를 저장하면 .config 파일에서 PWD 및 UID를 추출 할 수 있습니다. 그러나 A를 저장하면 추출 할 자격 증명이 없습니다.

저는 A가 "Persist Security Info=false" 인 이유를 모르지만 좋은 습관 인 것처럼 보입니다. 참조 MSDN 예 : 기본값은 'FALSE'이기 때문에 그것, 그것은 또한 매우 중복 보이는 * 좋은 습관처럼

+0

*하지만 보인다. –