🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Passwortabfrage zur MySQL Datenbankverbindung wirkungslos

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
aglori
Beiträge: 7
Registriert: Sa 30. Mär 2013, 11:00

Passwortabfrage zur MySQL Datenbankverbindung wirkungslos

Beitrag von aglori » Mi 8. Mai 2013, 16:26

Hallo!

ich habe ein Formular in Calc erstellt, welches die Verbindung zu einer MySQL Datenbank herstellt. Die Passwortabfrage erscheint auch korrekterweise. Wenn man das Feld jedoch leer lässt, kommt die Datenbankabfrage "Authentifizierung" für jedes Formular zwar erneut, es werden dann jedoch alle Datensätze angezeigt, was ja nicht sein soll ? Gibt man ein falsches Passwort ein, erscheint auch korrekterweise eine Fehlermeldung und es werden keine Daten angezeigt.

Kann es sein, dass das Passwort unter LibreOffice oder irgendwo in Windows gespeichert wurde ? An einem Makro kann es nicht liegen, da ich diese bereits ausgeschaltet hatte. Den Schnellstarter habe ich auch ausgeschaltet. Das gleiche Problem bleibt auch, wenn ich Windows neu starte.

Ich danke im Voraus für jede Idee,

aglori

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Passwortabfrage zur MySQL Datenbankverbindung wirkungslo

Beitrag von gogo » Mi 8. Mai 2013, 16:36

... es werden dann jedoch alle Datensätze angezeigt...
ja - sollte auch so sein, wenn die Datenherkunft des Formulars die gesamte Tabelle ist, werden auch alle Daten angezeigt.
"Nur neue Datensätze"=ja macht genau das was es sagt, wenn Du aber auf alle Datensätze "optional" zugreifen willst, dann würde ich Dir raten einen Filter mit dem Formular mitzuspeichern z.B. "ID=0", dann werden beim Formularstart nur die Daten bei denen die ID=0 ist agezeigt.

Username und Passwort werden im "Verbindungspool" gespeichert - wo der ist weiss ich nicht, aber bei uns wird nach dem Ausschalten des Schnellstarters UND dem Schließen aller offenen LO-Dokumente die Authentifizierung der Verbindung zu MySQL-DB beim erneuten Öffnen des LO-Dokumentes erneut abgefragt. Solange eines der Dokumente offen ist, oder der SchnellStarter geladen bleibt bleiben auch die Verbindungs-Auth-Daten gespeichert - was blöd ist, wenn man sich vertippt hat ...
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

aglori
Beiträge: 7
Registriert: Sa 30. Mär 2013, 11:00

Re: Passwortabfrage zur MySQL Datenbankverbindung wirkungslo

Beitrag von aglori » Mi 8. Mai 2013, 16:46

Danke für Deine Antwort. Vielleicht hatte ich mich falsch ausgedrückt. Die Datenherkunft ist ausschließlich die MySQL Datenbank.

Wenn ich unter Linux im "Authentifizierungs-Fenster" kein Passwort eingebe, dann wird mir gesagt "Verbindung zur Datenbank gescheitert". So hatte ich mir das auch für Windows vorgestellt. Eigentlich dürften doch auch keine Daten angezeigt werden? Lässt sich der Filter mit einem Passwort versehen?

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Passwortabfrage zur MySQL Datenbankverbindung wirkungslo

Beitrag von gogo » Mi 8. Mai 2013, 18:46

aglori hat geschrieben:Die Datenherkunft ist ausschließlich die MySQL Datenbank.
Die Datenherkunft eines Formulars muss immer eine Untereinheit einer Datenbank sein - Tabelle oder View bei MySQL gehen dann auch noch Variablen und Funktionen. Die Verwaltung wer welche Daten sehen... kann liegt immer in der Rechteverwaltung der Datenbank - in diesem Fall machst Du das bei Deinem MySQL Server.

Damit Du die Daten Deiner Datenbank sehen kannst musst Du den Benutzern entsprechende Rechte vergeben. Auf Datensatzbasis geht das aber nicht (wohl aber kannst Du bei MySQL auch Rechte für Tabellenspalten festlegen). Um nur bestimmte Datensätze anzuzeigen musst Du die Datenherkunft des Formulars als Abfrage gestalten. In Deiner Tabelle brauchst Du dann ein Feld, das die Rechte definiert, z.B. ein Textfeld in dem die Usernamen stehen. In Deiner Abfrage bekommst Du den Aktuellen User mit der MySQL-Funktion USER() oder CURRENT_USER - wobei Du beachten musst, dass da auch die IP-Adresse dranhängt - also besser "SELECT LEFT(USER(),INSTR(USER(),'@')-1)" verwenden.

Code: Alles auswählen

select * from tabelle1 where ZugelasseneBenutzer like CONCAT('%,', LEFT(USER(),INSTR(USER(),',@')-1), '%');
zeigt dann alle Datensätze von Tabelle1 an in denen im Feld "ZugelasseneBenutzer" der String ,Benutzername, vorkommt. (wobei "Benutzername" der MySQL-Benutzername des derzeit eingeloggten Benutzers ist. Mit solchen Klauseln arbeiten viele MySQL-basierte Webseites.
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

aglori
Beiträge: 7
Registriert: Sa 30. Mär 2013, 11:00

Re: Passwortabfrage zur MySQL Datenbankverbindung wirkungslo

Beitrag von aglori » Mo 13. Mai 2013, 17:31

Hallo gogo,

danke nochmal für Deine ausführliche Beschreibung. Ich hatte schon vermutet, dass es etwas mit dem MySQL Benutzer zu tun hat. Ich werde mir die Benutzer jetzt vorknöpfen und ansonsten die sql statements von Dir nehmen. Die nächsten Tage werde ich schreiben, wie ich es lösen konnte.

aglori
Beiträge: 7
Registriert: Sa 30. Mär 2013, 11:00

Re: Passwortabfrage zur MySQL Datenbankverbindung wirkungslo

Beitrag von aglori » Mo 3. Jun 2013, 20:19

Hallo gogo,
das Passwort war in meinem Fall doch in Windows gespeichert. Genauer gesagt hatte ich irgendwie einen Haken bei der Verwaltung der ODBC Treiber übersehen, wo die Verbindung zur MySQL Datenbank gespeichert war. Somit konnte ich mich bei LibreOffice trotz leerem Authentifizierungs Passwort anmelden.
Dank und Grüße,
Andreas

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Passwortabfrage zur MySQL Datenbankverbindung wirkungslo

Beitrag von gogo » So 9. Jun 2013, 01:42

Danke für die Rückmeldung - ich hatte eigentlich angenommen, dass die Verbindung Base<=>MySQL über den Proprietären OOo-Treiber bzw. JDBC läuft. Dass bei ODBC die Passwörter in der ODBC-Verwaltung gespeichert werden war mir nicht bewusst, da wir auch die Windows-Rechner per JDBC angebunden haben, und da werden keine Passwörter in der Base-Datei gespeichert.
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten