2014-01-06 5 views
1

이에 대한 정보를 찾을 수 없습니다. QODBC로 SSL을 활성화 할 수 있습니까? 그렇다면 어떻게?Qt에서 SSL을 사용하는 방법 QODBC

QMySql에서 SSL을 사용하거나 QODBC와의 비 SSL 연결을 사용하는 데 문제가 없습니다. 그러나 http://qt-project.org/doc/qt-5.1/qtsql/sql-driver.html#qodbc의 QODBC 드라이버 문서에는 SSL + ODBC에 대한 언급이없고 QODBC는 http://qt-project.org/doc/qt-5.1/qtsql/qsqldatabase.html#setConnectOptions에있는 목록에없는 매개 변수를 거부합니다.이 중 아무 것도 SSL과 관련이 없습니다.

흥미롭게도 나는 옵션, 의미 또는 허용 된 값에 대한 문서를 찾을 수 없습니다. 내가 찾을 수있는 옵션에 대한 유일한 언급은 포괄적 인 목록인지 또는 추가 정보 제공 여부를 명시하지 않는 해당 문서 페이지에 있습니다.

내가 QODBC SSL을 사용하여 찾을 수있는 유일한 기타 직접 참조가 4 년 전에서 응답이없는 게시물입니다 : http://www.qtcentre.org/threads/34367-SSL-with-QODBC

더 QODBC이 명백하게의 이름도 있다는 사실에 의해 혼합되어이 정보를 찾기 관련없는 Quickbooks 용 ODBC 제품.

당신은 QSqlDatabase::setDatabaseName에 ODBC 데이터 소스의 일부로 보안 연결 옵션을 통과해야 http://qt-project.org/forums/viewthread/36850/

답변

3

에서 내 게시물의 복사본입니다.

Driver={MySQL ODBC 5.1 Driver};Server=server_address;Database=database; 
User=username;Password=password; 
sslca=ca.crt;sslcert=client.crt;sslkey=client.key;sslverify=1; 

나는이 정확한 문자열을 확인 단지 (here에서 촬영) 아이디어를 표시하지 않은 : ODBC 데이터 소스는 비슷한에 보일 것입니다. 자세한 내용은 MySQL Connector/ODBC documentation을 참조하십시오.

+0

QSqlDatabase 개체의 데이터베이스 이름 필드에 연결 문자열 구문을 사용합니다. 일부 매개 변수 (예 : SSL 매개 변수)는 데이터베이스 이름 필드의 연결 문자열 구문을 통해 수동으로 지정해야하며 일부 매개 변수에는 기본 제공 설정자 ('QSqlDatabase :: setUserName()'등)가 있어야하는 회피 또는 사고처럼 보입니다. 다른 Qt SQL 드라이버 (QMYSQL 등)에는 SSL에 임의의 연결 문자열 구문이 필요하지 않습니다. AFAICT이 메커니즘은 QODBC 문서에 없습니다. – taz

+0

ODBC는 일반적인 인터페이스이므로 필요한 기능이 부족하지 않는 한 Qt에서 제공하는 DB 전용 드라이버를 사용하는 것이 좋습니다. Qt [QODBC에 대한 문서] (http://qt-project.org/doc/qt-5.0/qtsql/sql-driver.html#qodbc)는 다음과 같이 말합니다 :'ODBC 데이터 소스에 연결할 때 QSqlDatabase :: setDatabaseName() 함수에 대한 ODBC 데이터 원본의 이름을 실제 데이터베이스 이름이 아닌 " –

+0

AFAIK는 Windows 데이터 원본 관리자와 같이 데이터 원본의 이름을 참조합니다. 연결 문자열로 표시되지만 연결 문자열과 다른 것은 아닙니다. 내가 틀렸고 연결 문자열이 "ODBC 데이터 원본의 이름"으로 암시되어 있거나 ODBC 데이터 원본 이름과 해당 연결 문자열이 서로 바꿔서 사용할 수있는 것으로 알려져 있지 않다면 설명서에이 내용이 언급되어 있지 않습니다. – taz

관련 문제