Zeos -> MySql (SSL)
Zeos -> MySql (SSL)
Moin, moin,
ich muß wie oben schon beschrieben, auf einen MySQL Server 5.1 zugreifen. Da dieser Zugriff öffentlich über das Internet laufen soll, erfolgt die Verbindung via SSL. Hat hierzu schon jemand Erfahrungen mit Lazarus? Welche Komponenten sind die richtigen, Zeos?
Ist eine SQL-Verbindung über SSL mit Lazarus derzeit schon möglich? Wenn nein, gibt es eine andere sichere Möglichkeit?
Gruß
Baba.
ich muß wie oben schon beschrieben, auf einen MySQL Server 5.1 zugreifen. Da dieser Zugriff öffentlich über das Internet laufen soll, erfolgt die Verbindung via SSL. Hat hierzu schon jemand Erfahrungen mit Lazarus? Welche Komponenten sind die richtigen, Zeos?
Ist eine SQL-Verbindung über SSL mit Lazarus derzeit schon möglich? Wenn nein, gibt es eine andere sichere Möglichkeit?
Gruß
Baba.
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Re: Zeos -> MySql (SSL)
Zeos oder SQL-DB, je nach Geschmack.baba hat geschrieben:Ist eine SQL-Verbindung über SSL mit Lazarus derzeit schon möglich? Wenn nein, gibt es eine andere sichere Möglichkeit?
Zumindest Zeos unterstützt sicher auch SSL. Ich glaube allerdings, du brauchst die entsprechenden SSL-Libs dazu, dann sollte es recht simple wie ohne SSL gehen.
Aktuelle Version vorausgesetzt. In der 6.6.x ist es aber definitiv drin.
Code: Alles auswählen
SSL connections are supported using this connection properties (using mysql_sll_set library call) :
Properties.Strings = (
'MYSQL_SSL=TRUE'
'MYSQL_SSL_CA=D:/mysql/certs/ca-cert.pem'
'MYSQL_SSL_CERT=D:/mysql/certs/client-cert.pem'
'MYSQL_SSL_KEY=D:/mysql/certs/client-key.pem')
SQLDB weiß ich nicht, ich nehm nie SSL, geht aber wahrscheinlich sehr ähnlich, probier es halt aus

Johannes
-
- Beiträge: 155
- Registriert: Mi 22. Aug 2007, 14:52
- OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
- CPU-Target: 32Bit
- Wohnort: 65719 Hofheim am Taunus
- Kontaktdaten:
Re: Zeos -> MySql (SSL)
Mit Zeos geht's wunderbar (benutze im Moment Ver. 6.6.4 stable) - exakt wie oben von monta beschrieben. Bei der Ver. 6.6.0 war's noch nicht drin.
Mit meiner geliebten Lazarus TMySLQ50Connection geht es leider nicht, bzw. habe es nicht hinbekommen.
Ich versuche mich nämlich jetzt auch an einer Anwendung, die über das Internet auf einen MySQL-Server zugreift, und dort firmeninterne Daten abruft. Bis jetzt sieht es sehr gut aus (unter Linux), werde aber auch unter WinXP das zum Laufen bekommen müssen.
Mit meiner geliebten Lazarus TMySLQ50Connection geht es leider nicht, bzw. habe es nicht hinbekommen.
Ich versuche mich nämlich jetzt auch an einer Anwendung, die über das Internet auf einen MySQL-Server zugreift, und dort firmeninterne Daten abruft. Bis jetzt sieht es sehr gut aus (unter Linux), werde aber auch unter WinXP das zum Laufen bekommen müssen.
-
- Beiträge: 489
- Registriert: Sa 5. Apr 2008, 09:37
- OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
- CPU-Target: 32Bit /64 Bit
- Wohnort: Nähe Freiburg i.Br.
Re: Zeos -> MySql (SSL)
würde mich in diesem Zusammenhang interessieren, wie ssl mit ner firebird DB funktioniert ( ZEOS und Firebird 2.1 )monta hat geschrieben:Zeos oder SQL-DB, je nach Geschmack.baba hat geschrieben:Ist eine SQL-Verbindung über SSL mit Lazarus derzeit schon möglich? Wenn nein, gibt es eine andere sichere Möglichkeit?
Zumindest Zeos unterstützt sicher auch SSL. Ich glaube allerdings, du brauchst die entsprechenden SSL-Libs dazu, dann sollte es recht simple wie ohne SSL gehen.
Aktuelle Version vorausgesetzt. In der 6.6.x ist es aber definitiv drin.(steht in parameters.pdf, was im ZEOS-Archiv dabei ist)Code: Alles auswählen
SSL connections are supported using this connection properties (using mysql_sll_set library call) : Properties.Strings = ( 'MYSQL_SSL=TRUE' 'MYSQL_SSL_CA=D:/mysql/certs/ca-cert.pem' 'MYSQL_SSL_CERT=D:/mysql/certs/client-cert.pem' 'MYSQL_SSL_KEY=D:/mysql/certs/client-key.pem')
SQLDB weiß ich nicht, ich nehm nie SSL, geht aber wahrscheinlich sehr ähnlich, probier es halt aus
Gruss KH
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Zeos -> MySql (SSL)
http://www.firebirdfaq.org/faq113/khh hat geschrieben: würde mich in diesem Zusammenhang interessieren, wie ssl mit ner firebird DB funktioniert
Auch 2.1 hat glaube ich keine interne SSL Unterstützung, auf jeden Fall habe ich sie nicht gefunden.
-
- Beiträge: 489
- Registriert: Sa 5. Apr 2008, 09:37
- OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
- CPU-Target: 32Bit /64 Bit
- Wohnort: Nähe Freiburg i.Br.
Re: Zeos -> MySql (SSL)
ich danke dir,mse hat geschrieben:http://www.firebirdfaq.org/faq113/khh hat geschrieben: würde mich in diesem Zusammenhang interessieren, wie ssl mit ner firebird DB funktioniert
Auch 2.1 hat glaube ich keine interne SSL Unterstützung, auf jeden Fall habe ich sie nicht gefunden.
werd ich mich mal mit befassen
Gruss KH
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Zeos -> MySql (SSL)
Da müsste man mysql_ssl_set() aufrufen. Das Problem ist, dass mysql_ssl_set() nach mysql_init() aber vor mysql_real_connect() aufgerufen werden muss und man da keinen Zugriff hat:KOBOLD Messring GmbH hat geschrieben: Mit meiner geliebten Lazarus TMySLQ50Connection geht es leider nicht, bzw. habe es nicht hinbekommen.
Code: Alles auswählen
procedure TConnectionName.ConnectMySQL(var HMySQL : PMySQL;H,U,P : pchar);
Var
APort : Cardinal;
begin
HMySQL := mysql_init(HMySQL);
APort:=Abs(StrToIntDef(Params.Values['Port'],0));
HMySQL:=mysql_real_connect(HMySQL,PChar(H),PChar(U),Pchar(P),Nil,APort,Nil,0);
If (HMySQL=Nil) then
MySQlError(Nil,SErrServerConnectFailed,Self);
end;
Code: Alles auswählen
procedure TConnectionName.ConnectToServer;
Var
H,U,P : String;
begin
H:=HostName;
U:=UserName;
P:=Password;
ConnectMySQL(FMySQL,pchar(H),pchar(U),pchar(P));
FServerInfo := strpas(mysql_get_server_info(FMYSQL));
FHostInfo := strpas(mysql_get_host_info(FMYSQL));
end;
Ich habe mal die neue tmsemysqlconnection, welche für MySQL 5.0, 5.1 und zukünftige Versionen vergesehen ist, mit SSL Support ausgerüstet - es scheint zu funktionieren (trunk 2846). Wie bist du zu SSL fähigen dll's und Server gekommen? Selbst kompiliert? Falls du eine nicht SSL fähige dll verwendest und der Server nicht auf Verschlüsselung besteht, werden die SSL Parameter möglicherwiese ohne Fehlermeldung ignoriert.
-
- Beiträge: 155
- Registriert: Mi 22. Aug 2007, 14:52
- OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
- CPU-Target: 32Bit
- Wohnort: 65719 Hofheim am Taunus
- Kontaktdaten:
Re: Zeos -> MySql (SSL)
Für MySQL: Zum Testen solltest Du unbedingt einen User (auf dem Server) mit "REQUIRE SSL" anlegen,werden die SSL Parameter möglicherwiese ohne Fehlermeldung ignoriert.
Wenn Du eine Verbindung zum Server hinbekommen hast, prüfe in einer Abfrage
"SHOW STATUS LIKE 'Ssl_cipher'"
ob Du wirklich eine SSL-Verbindung hast: Wenn ja, kommt da sowas wie "DHE-RSA-AES256-SHA" als Antwort, wenn nein ein Leerstring
Das ganze von der Serverseite gut beschrieben in:
http://dev.mysql.com/doc/refman/5.0/en/ ... g-ssl.html" onclick="window.open(this.href);return false;
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Zeos -> MySql (SSL)
Yup, tmsemysqlconnection macht genau diesen Test.KOBOLD Messring GmbH hat geschrieben: ob Du wirklich eine SSL-Verbindung hast: Wenn ja, kommt da sowas wie "DHE-RSA-AES256-SHA" als Antwort, wenn
Code: Alles auswählen
if (myo_ssl in foptions) and (mysql_get_ssl_cipher <> nil) then begin
actcipher:= mysql_get_ssl_cipher(hmysql);
if actcipher = nil then begin
closeconnection(hmysql);
databaseerror('Can not encrypt connection.',self);
end;
end;