Seite 1 von 1

Login in einem Formular erstellen

Verfasst: Mi 21. Mai 2014, 13:27
von Libreobeginner
Hallo Community,

ich hab eine Datenbank erstellt, wo sich sofort ein Formular öffnet beim öffnen der Datenbank und dadurch die gesamte Datenbank wie eine runde Applikation aussieht. Nun hatte ich die Idee auf dem Startformular beim Start der Datenbank einen Login zu basteln, heißt Namen eingeben und dann das Passwort, so das man danach auf den Rest der Applikation erst zugreifen könnte aber ich finde nirgendwo Hinweise wie so etwas funktionieren könnte.

Daher meine Frage ob es möglich ist in Libre Office einen Login zu machen, z.B. in der Form das man auf einen Login Button drückt sich ein Formular öffnet wo man sich einloggen kann und dann erst auf den Rest zugreifen kann? :)

Danke im Vorraus
Lg
Libreobeginner

Ps. der Rest sind weitere Formulare, nicht zum verändern der Datenbank

Re: Login in einem Formular erstellen

Verfasst: Mi 21. Mai 2014, 19:31
von RobertG
Hallo Libreobeginner,

grundsätzlich gaukelst Du damit irgendwelche Sicherheiten vor, die es nicht gibt. Alles, was Du da mit Hilfe von Makros programmierst - und um etwas anderes handelt es sich ja nicht, sofern Du die interne Datenbank von Base verwendest - kannst Du schließlich von vornherein umgehen. Ich starte dazu nur eben LO, stelle die Makrosicherheit auf eine entsprechend hohe Stufe und unterbinde die Ausführung. Dakk nann ich die Datenbank komplett einsehen und auch die Formulare starten. Bestimmte Funktionalitäten aus Makros stehen mir dann natürlich nicht zur Verfügung.

Das zweite Problem dürfte die Eingabe eines Passwortes sein. Mir ist keine Verschlüsselungstechnik über Makros bekannt. Die bräuchtest Du aber, damit das abgespeicherte Passwort (müsste ja in der Datenbank stehen) nicht direkt für jeden Nutzer nutzbar sein darf.

Natürlich kannst Du in Abhängigkeit von einer User-Passwort-Kombination die Ausführung des Makrocodes unterbinden - aber das ist dann auch wirklich alles.

Gruß

Robert

Re: Login in einem Formular erstellen

Verfasst: Fr 23. Mai 2014, 22:28
von F3K Total
Hallo,
vielleicht eine Alternative:
Wenn man die interne HSQL-Datenbank zu einer externen macht, kann man neue Benutzer mit, wenn nötig, unterschiedlichen Rollen (Roles) anlegen, und jedem ein eigenes Password geben. Immer wenn die Datenbank geöffnet wird, kommt die Passwortabfrage:
PW.png
PW.png (16.11 KiB) 3614 mal betrachtet
Über die Roles kann man unterschiedliche Rechte auf die einzelnen Tabellen und davon abhängige Abfragen erteilen. Etwa so, dass User2 z.B. Tabelle1 zwar lesen, aber nicht ändern, er in Tabelle2 lesen und ändern, jedoch nicht löschen und ggf. in Tabelle 3 alles darf. Für User1 können völlig andere Lese/Schreibrechte vergeben werden.
Informationen, wie die interne HSQL-Datenbank zu einer externen gemacht werden kann, finden sich z.B. im Base-Handbuch im Anhang oder auch hier in Videotutorial 6.
Wenn du es ausprobieren willst, dann übe an einer Kopie deiner Datenbank, bist du soweit, dass sie läuft, melde dich wieder, zum Einstellen von USERN/ROLLEN/PASSWORTEN.
Das läuft über Extras/SQL ... mit den entsprechenden SQL-Befehlen.
Gruß R

Re: Login in einem Formular erstellen

Verfasst: Mo 2. Jun 2014, 10:33
von Berzstein
Hallo,

reintheoretisch könntest du auch ein Makro bentuzen das wiefolgt aussieht:

Sub login

Dim user As String
Dim password As String

oForm = thiscomponent.drawpage.forms(0)
oUsername = oForm.getbyname("Username")
oPassword = oForm.getbyname("Password")

If oUsername.text = "user" And oPassword.text = "1234" Then
MsgBox "Zugriff gewährt"
MsgBox "Willkommen"
ThisDatabaseDocument.FormDocuments.getByName("Navi").close
ThisDatabaseDocument.FormDocuments.getByName("Alles").open
Else
MsgBox "Ihr Benutzername oder Ihr Passwort war falsch, bitte versuchen Sie es erneut.."
End if
End Sub


Andererseit hätte ich noch die Idee falls du mehrere haben willst es mit einem SELECT-Statement zu versuchen allerdings
hätte ich da nur einen Ansatz und weiß nicht genau wie man das realisieren könnte aber du könntest es ja versuchen.

Der Ansatz sieht so aus:
SELECT "Username" AND "PW" FROM "Benutzer"
If oUsername.text = Username And oPassword.text = PW Then


Benutzer soll in dem Fall die Tabelle darstellen wo du was abrufst und das Select welche Datensätze abgefragt werden sollen.
Aber vielleicht kommst du selber ja auch noch auf eine Idee wie man das realisieren könnte :)

Grüße
Berzstein