Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Die Datenbank für den Benutzer bereitstellen

Begonnen von katharina_eckert, Januar 04, 2021, 08:20:02

⏪ vorheriges - nächstes ⏩

katharina_eckert

Liebe Community,

ich habe eine Datenbank erstellt, welche aus mehreren Tabellen und Formulare besteht. Ich möchte nun Frontend und Backend erstellen. Danach möchte ich dass wenn der Benutzer sich einloggt, dann nur die Rechte hat die er zugeteilt bekommt, das klappt grad noch nicht so bei mir. Könnte mir jemand dabei helfen ?

Mfg

MzKlMu

Hallo,
mit Deinen dürftigen Angaben ist keine Hilfe möglich.
Was hast du denn versucht?
Hat jeder User sein eigenes Frontend auf seinem Rechner?
Wie erfolgt das einloggen?
Wie erfolgt die Zuteilung der Rechte?
Gruß Klaus

katharina_eckert

Hi
Ja jeder hat seine FE auf seinem Rechner
Das Einloggen erfolgt anhand einer _AutoEX. Man muss sich erstmal einloggen sonst schließt sich die Datei.

lg

MzKlMu

Hallo,
sorry, aber mit Deinen Angaben ist nichts, absolut nichts anzufangen.
Und was willst Du mit dem nichtssagenden Bildchen ?

Und beantworte bitte alle Fragen, aber ausführlich.
Was macht z.B. das Autoexec Makro ?
Welchen Code gibt es ?
Gruß Klaus

katharina_eckert

Hi Klaus
tut mir leid...

Option Compare Database
Option Explicit

Private Sub cmdAbbrechen_Click()
    If MsgBox("Dies beendet die Anwendung. Fortsetzen?", vbYesNo + vbExclamation, "Anwendung beenden") = vbYes Then
        DoCmd.Quit
    End If
End Sub

Private Sub cmdLogin_Click()
    Dim lngBenutzerID As Long
    lngBenutzerID = Nz(DLookup("BenutzerID", "tblBenutzer", "Benutzername = '" & Me!cboBenutzername & "' AND Kennwort = '" & Me!txtKennwort & "'"), 0)
    If lngBenutzerID = 0 Then
        MsgBox "Benutzername und/oder Kennwort sind falsch."
        Me!txtKennwort.SetFocus
    Else
        MsgBox "Anmeldung erfolgreich!"
        OptionEinstellen "CurrentUserID", CStr(lngBenutzerID)
        DoCmd.Close acForm, Me.Name
    End If
End Sub

Private Sub Form_Load()
'    Me.Modal = True
End Sub

MzKlMu

#5
Hallo,
und wo und wie werden Rechte zugewiesen ?

Nachtrag:
Deine Kennwortabfrage unterscheidet nicht zwischen Groß und Kleinschreibung was für ein Kennwort unüblich ist.
KennWort=kennwort=KENNWORT=Kennwort
Ist Dir das klar ?
Gruß Klaus

katharina_eckert

Hi Klaus

da hast du recht! Das ist mir eben beim probieren auch eingefallen, dass er Groß- & Kleinschreibung nicht unterscheidet.
Wie behebe ich denn das Problem?

Ich habe die Benutzerverwaltung mithilfe dieser Website erstellt -> https://access-im-unternehmen.de/Benutzerverwaltung/ <-

Ich erkläre dir jetzt alles. Ich brauche eigentlich eine Benutzerverwaltung, die sich auf einzelne & bestimmte Felder bezieht.

Ich habe eine Tabelle aus verschieden Kenngrößen wie zum beispiel Projektnummer, Seriennummer, Name, Ort, etc.
Ich will 4 Benutzergruppen erstellen. Eine Gruppe von den kann nichts an der Tabelle verändern, jedoch ein  bestimmtes Feld wie zum Beispiel IST-Werte Daten einfügen und verändern können. Und die andere Gruppe kann auch nur 2 Spalten bzw Felder aus der Tabelle verändern, bzw hinzufügen und löschen. Und ich will dass es noch eine Gruppe gibt, die neue Datensätze erstellen kann und die Daten die die anderen beiden Gruppen hinzufügen können, dürfen von ihr nicht gelöscht werden dürfen.
Es ist sehr kompliziert, ich bin auch nicht der beste im erklären haha#
Ich gib mein Bestes

Jeder kann aber auf die Suchmaske zugreifen.

Ich bin jetzt so vorgegangen dass ich noch einen Formular erstellt habe , wo die Spalten drinne Stehen, die bearbeitet werden können.
Jede Gruppe würde ein Formular bekommen, wo diese dann ihr Daten füttern könnten.

MFG
DANKE IM VORRAUS!:)

DF6GL

Hallo,

ich befürchte, die Aufgabe 
Zitateine Benutzerverwaltung, die sich auf einzelne & bestimmte Felder bezieht.
erfordert ein klein wenig mehr an Konzeptionierung als es jetzt den Anschein hat.


Zitatnichts an der Tabelle verändern, jedoch ein  bestimmtes Feld wie zum Beispiel IST-Werte Daten einfügen und verändern können

Zunächst: Tabellenfelder als solche( und so verstehe ich jetzt den Sinn dieses Satzes) je nach Rolle zu verändern, bzw. einzufügen, ist ein Irrweg.

Bei einer Benutzerrechte-/Rollensteuerung sind lediglich Formulare gefragt, Tabellen bleiben außen vor. Die haben die User so oder so nicht zu Gesicht zu bekommen.

Mein Vorschlag:

Tabellen allesamt komplett mit allen vorkommenden Feldern erstellen,  Beziehungen mit ref. Integrität erstellen und die "Logik" der Datenverhältnisse prüfen.


Die gezeigte Login-Steuerung kann prinzipiell so verwendet werden.

Um nun auch darauf aufbauend eine Benutzerrollen-Steuerung zu implementieren, könnte solches Vorgehen zielführend sein:

Prinzipiell  wird die Form-, bzw. Steuerelement-Eigenschaft "TAG"  ("Marke")  dazu verwendet , um für genau dieses betreffende Objekt die Berechtigung dafür zu definieren.

Soll heißen, ein Token (String-Code), z.B \1H, wird in die Marke-Eigenschaft eines Textfeldes geschrieben.

\1H bedeutet, dass für einen User mit Rolle 1 das Textfeld unsichtbar (Hidden) gesetzt wird.


Diese Einstellung der Visible-Eigenschaft geschieht mittels einer Prozedur, die bei Öffnen des Forms ausgeführt wird.

\1H\2L\3H\4H

bedeutet demzufolge:  Unsichtbar für Rolle 1,3 und 4,  gesperrt für Rolle 3.

Solche Token können für alle möglichen Steuerungsaufgaben definiert werden.

Für die Form-Marke-Eigenschaft bietet sich z. B. "\NO" an, die das Öffnen des Form verhindert.


Um die Möglichkeit zum Löschen von Datensätzen rollenabhängig zu steuern, ist in den entsprechenden Tabellen ein Feld "Berechtigung" mit zuführen, in das ein entspr. definierter Token eingesetzt wird.  Z. B.: "\3ND", wenn Rolle 3 diesen DS nicht löschen darf.  Die Überprüfung dieses Tokens geschieht in der "Beim Löschen"- oder "Vor Löschbestätigung"-Ereignisprozedur im Formular.



Weiterhin wird für das dynamische (nicht über den Formularentwurf gehende) Einstellen der einzelnen Marke-Eigenschaften ein bisschen "Komfort" benötigt. Dazu werden alle Steuerelemente aus allen betroffenen Formularen und deren "Marke"-Inhalt ausgelesen und in ein Tabelle geschrieben. Zusätzliche Felder dienen zur Speicherung des jeweiligen Tokens für ein Steuerelement bzw. für das Form.

Mittels Prozedur werden nach der "Pflege" der einzelnen Formulare die Token in die Marke-Eigenschaft der Steuerelemente geschrieben.


ZitatJede Gruppe würde ein Formular bekommen, wo diese dann ihr Daten füttern könnten.

Das ist nicht zielführend.  Die Berechtigungen und gewissermaßen auch das  Layout werden allesamt per Code eingestellt.

Die DB wird anfänglich so aufgebaut, als dass sie ohne diese Berechtigung vollständig und korrekt abläuft.

Die durch die Rollen beschränkten Möglichkeiten werden durch die o. g. Prozedur beim Öffnen des Form definiert.

PS:  Schau Dir in der Hilfe die StrComp()-Funktion für den Passwort-Vergleich an...

katharina_eckert

Hallo Franz,
danke für dein langen, mühevollen und auch tollen Beitrag.

Ich hab nicht so ganz alles verstanden, aber ich denke das wichtigste.
Ich habe eine Passwortabfrage erstellt und auch berechtigungen erteilt. ich kann dir ja mal eine beispieldatei von mir schicken wenn du möchtest .

Mfg

DF6GL

Hallo,

Du kannst die DB hier hochladen, datenreduziert, aber lauffähig, komprimiert/repariert und gezippt.


Wenn Du konkrete und direkte Unterstützung willst, dann siehe hier:

https://www.access-o-mania.de/forum/index.php?topic=6969.0


Wie gesagt, allein Berechtigungen zu definieren, reicht nicht. Die Berechtigungen müssen auch angewendet werden.

katharina_eckert

Hallo Franz,
Ich habe dir eine Mail geschickt. Hier im anhang findest du auch meine beispieldatenbank

Danke !

MFG

DF6GL

Hallo,

bis jetzt ist keine Mail eingegangen. Prüfe nochmal die Mail-Adresse..


An der DB fehlt noch Einiges an Tabellen und Beziehungen.

Zudem ist die Beziehung zwischen den "Maschinen_Typ"-Feldern grundsätzlich falsch.  Beziehungen werden über Schlüsselfelder (Primärschlüssel, Fremdschlüssel)  gesetzt.






katharina_eckert

#12
Hi
können sie mich vielleicht bitte kurz kontaktieren
Email gelöscht. MzKlMu

MFg

MzKlMu

Hallo,
dacht ich mir es doch. Die Ähnlichkeit war mir aufgefallen.

https://www.ms-office-forum.net/forum/showthread.php?t=372016

Warum fängst Du in 2 Foren unabhängig das gleiche Thema an ?
Das gehört sich nicht und ist auch gemäß den Regeln unerwünscht.

Im anderen Forum wird auch klar, dass das ganze Vorhaben noch unausgegoren ist. Da stimmen noch nicht die grundlegenden Zusammenhänge.

Bitte keine echten Email hier zeigen. In Deinem eigenen Interesse. Emailaustausch nur per PN. Die Email oben habe ich gelöscht.
Gruß Klaus

katharina_eckert

Danke Klaus dass du es gelöscht hast.
Tut mir leid ...
kann ich einen beitrag auch irgendwie löschen ? oder geht das nicht