2013-03-20 2 views
9

ADO를 사용하여 SQL 서버 데이터베이스에 연결하려고합니다. 암호에는 마지막 문자로 공백이 포함됩니다. 연결 문자열을 작성할 때 암호를 어떻게 벗어나야합니까?연결 문자열의 이스케이프 공간

MSDN은 작은 따옴표 나 큰 따옴표에 넣어하지만이 작동하지 않을 말한다

... 이것은 내 연결 문자열 모습입니다

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx

:

Provider=SQLOLEDB;Persist Security Info=False;Initial Catalog=master;Data Source=test;uid=john;pwd="123 " 

감사합니다

+0

비슷한 버전의 연결 문자열을 볼 수 있습니까? – Paul

+0

pwd에 공백이 있어야합니까? – RBA

+3

'암호에는 마지막 문자로 공백이 있습니다. '왜, 왜, 왜, 왜, 왜? 많은 인터페이스가 ltrim/rtrim 문자열입니다. 이것은 단순히 더 나은 암호를 사용해야 할 때이를 해결하려고 노력하는 것처럼 보입니다. –

답변

12

이 무엇인지 알 수 있습니다.

Provider=SQLOLEDB;Password="123 ";Persist Security Info=True;User ID=john;Initial Catalog=mydbname;Data Source=127.0.0.1 
  1. pwd 키워드가 Password 대신 사용하는 경우는 연결에 실패 - 당신은 큰 따옴표로 묶어야합니다 Password 키워드를 사용해야합니다.
  2. User ID 대신 이 잘 작동합니다. 연결 작성 도구가 기본적으로 생성하므로 Id'e는 여전히 User ID을 사용합니다.
  3. Persist Security Info 키워드 (덧글 중 하나에 언급 된) 연결에 영향을주지 않습니다. @TLama가 잘 주석으로 달았습니다. "연결할 수 있지만 그대로 유지하면 IDBProperties 인터페이스에서 암호를 다시받지 못합니다. . "
  4. 연결 문자열의 키워드 순서는 중요하지 않습니다. IDBProperties 인터페이스는 SQL 서버 2008 R2와 함께 테스트 internal "Properties" collection

에이 문자열을 구문 분석합니다.

+0

두 가지를 변경했습니다. 값의 이름을'pwd'에서'Password'로 바꾸었지만 문자열의 끝 부분에 있지 않도록 값을 옮겼습니다. 두 가지 모두 변경해야합니까? –

+3

순서는 중요하지 않습니다. 나는 암호로 pwd를 바꾸었지만 마지막에 그것을 유지했다 ... –

관련 문제