oledb 공급자 (SQLOLEDB 및 SQL 네이티브 OLEDB 공급자)를 모두 사용하여 샘플 응용 프로그램을 만들었습니다.Microsoft OLE DB 공급자 및 SQL 네이티브 OLE DB 공급자를 사용하여 DB 연결 설정
사례 1 : 공급자 = SQLOLEDB
hr = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);
hr = cADOConnection.CreateInstance(__uuidof(Connection));
CString con_string = "provider=SQLOLEDB;server=MYPC;Database=MyDB";
CString SSlcon_string = "provider=SQLOLEDB;Encrypt=true;TrustServerCertificate=true;server=MYPC;Database=MyDB";
CString userName = "sa";
CString Password = "sa";
BSTR bsConnection = /*con_string*/SSlcon_string.AllocSysString();
BSTR uName = userName.AllocSysString();
BSTR uPassword = Password.AllocSysString();
hr = cADOConnection->Open(bsConnection, uName, uPassword, adConnectUnspecified);
printf("connection has been established");
VARIANT vaNoRecords;
memset(&vaNoRecords, 0, sizeof vaNoRecords);
CString sql = "SELECT * FROM salary";
BSTR query = sql.AllocSysString();
_RecordsetPtr rs;
rs = cADOConnection->Execute(query, &vaNoRecords, adCmdText);
printf("connection has been established\n");
결과 : 인증서가 서버 시스템에 설치되어있는 경우 연결에 관계없이 연결 문자열에서 암호화 = true로 TrustServerCertificate = 진실을 가능하게 안전합니다.
사례 2 : 제공 = SQLNCLI10.1 (SQL 네이티브 클라이언트 OLEDB 공급자)
HRESULT hr;
hr = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);
hr = cADOConnection.CreateInstance(__uuidof(Connection));
CString con_string = "provider=SQLNCLI10.1;server=MYPC;Database=MyDB";
CString SSlcon_string = "provider=SQLOLEDB;Encrypt=true;TrustServerCertificate=true;server=MYPC;Database=MyDB";
CString userName = "sa";
CString Password = "sa";
BSTR bsConnection = con_string/*SSlcon_string*/.AllocSysString();
BSTR uName = userName.AllocSysString();
BSTR uPassword = Password.AllocSysString();
hr = cADOConnection->Open(bsConnection, uName, uPassword, adConnectUnspecified);
printf("connection has been established");
VARIANT vaNoRecords;
memset(&vaNoRecords, 0, sizeof vaNoRecords);
CString sql = "SELECT suppliernumber, name1 FROM zrs_supplier";
BSTR query = sql.AllocSysString();
_RecordsetPtr rs;
rs = cADOConnection->Execute(query, &vaNoRecords, adCmdText);
printf("connection has been established\n");
결과 : 인증서가 서버 시스템에 설치되어있는 경우 연결에 관계없이 가능하게 암호화 = 진정한 안전 및 TrustServerCertificate = 문자열 string.ie에서 참 true 결과는 위와 같습니다.
나는 양쪽 모두 같은 behavior.Am 나는 여기에 뭔가가 빠졌어요 ?? 제안 사항을 보내 주시면 감사하겠습니다. Original question
그래서 모든 것이 잘 진행되고 있습니다. 귀하의 질문은 무엇인가? 진술에 물음표를 추가하면 (예 : * "Any Suggestion would apprecfully"*) 문항이 질문으로 바뀌지 않습니다. 더 추가하면 변경되지 않습니다. – IInspectable
질문은 끝에 "원래 질문"태그가 붙어 있습니다 :) SQL 연결을 확립하는 SQLOLE DB 공급자를 사용하고 있습니다. SSL 연결을 설정하고 싶습니다. 그 방법을 모르는. 나는 SQL 서버에 자체 서명 된 인증서를 설치하고 SSL 연결을 만들 수 있지만 내 MFC 클라이언트 만 인증서 및 설치 SSL 연결을 사용하기를 원합니다. –
인증서가 설치되어 있으면 SSL 연결이 설정되어 있어도 내 MFC 클라이언트가 보안 연결을 설정하지 못합니다. 내 MFC 클라이언트 만 인증서의 유효성을 검사하고 SSL 연결을 설정하기를 원합니다. –