[MSSQL & VB.Net] Windows Authentifikation

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    [MSSQL & VB.Net] Windows Authentifikation

    Hallo!

    Ich bin noch recht neu was VB angeht und benötige ein wenig Hilfe.

    Ich habe eine MSSQL Datenbank in aufgesetzt (liegt auf einem Netzlaufwerk) und möchte nun für 10 Personen ein VB.Net Prog schreiben mit dem die auf die Datenbank zugreifen können read+write. Die Personen haben aber unterschiedliche Rechte. Muss ich da Login und Registierung ins Programm einbauen oder wird das so erkannt, wenn ja, wie?
    In der Datenbank werden die Daten benutzerspezifisch gespeichert. Hans trägt beispielsweise ein, dass er 10 Stunden gearbeitet hat.

    Links mit denen ich das Problem lösen kann würden mir schon sehr weiterhelfen.

    Danke schonmal!
    Hallo!

    Sie müssen ihre Arbeitsstunden/Projektnummern eintragen und fragen diese auch gleichzeitig über das Tool ab (für jeweils den Benutzer, der das Tool ausführt). Andere Benutzer können aber die Arbeitszeiten aller anderen Benutzer abfragen uns ich auflisten lassen.

    VG
    Sprich: Jeder darf alles sehen aber nur die eigenen Zeiten und Projektnummern eintragen.
    Das heißt Du muss in Deinem Programm abfragen welcher Benutzer grad "angemeldet" ist.
    Dies kannst Du entweder mit einem Login machen dessen Eingaben Du dann mit den (hoffentlich) auf der DB hinterlegten vergleichst. Du bräuchtest also eine Tabelle "Benutzer" und dort mindestens die Felder "Name" und "Passwort".

    Falls Deine Benutzer sich an deren PCs schon mit eindeutigem Benutzernamen und PW einloggen, dann kannst Du auch einfach den Benutzernamen von Windows abfragen und diesen mit Deiner "Benutzer"-Tabelle vergleichen (single sign on).

    P.S: Willkommen im Forum :)
    Du kannst ggf. die Zugriffsberechtigung für die Daten auch auf Datenbankebene vergeben.
    msdn.microsoft.com/de-de/library/vstudio/bb669084.aspx

    Das wird allerdings aufwendig, wenn du die Daten bis auf Record-Ebene herunter unterschiedlich schützen willst.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    hallo!

    Da man bei mir wirklich von einem blutigen Anfänger sprechen kann ist mir die Lösung bis aus Record-Ebene hinunter zu gehen etwas zu heikel, da ich einfach zu wenig Wissen habe.

    @vb-xperiment:
    ich habe bei google nach "single sign on", mssql und vb microsoft authentification gesucht, aber irgendwie finde ich da nicht so richtig was. Hast du eine Seite, die du mir als Einstieg empfehlen kannst?

    Herzlichen Dank an euch schonmal für die Hilfe!
    Voraussetzungen für single signon:
    -Benutzer müssen sich am PC eindeutig anmelden.
    -Diesen Anmeldenamen musst Du in die Datenbank am besten in eine Tabelle "Benutzer" in Spalte z.B. "Username" hinterlegen. Als Tipp: mache hier noch eine Spalte "Aktiv" und setze diese für Benutzer die die DB nutzen dürfen auf 1 (0 für die die diese nicht mehr nutzen dürfen).
    -Bei Programmstart kannst Du im Form.Load - Event dann den Benutzernamen mittels

    VB.NET-Quellcode

    1. Environment.UserName
    ermitteln
    -Dieses vergleichst Du dann mit den Einträgen in der Tabelle "Benutzer". Wenn der Name gefunden wird und Aktiv auf 1, dann soll Dein Programm normal ausgeführt werden, ansonsten abbrechen (ne entspr. Meldung wäre nicht verkehrt).
    -Und beim Schreiben kannst Du ja wieder den Benutzernamen hernehmen

    Wie sieht denn Deine DB aus (Tabellen, Spalten etc.)?
    Wow, super danke!!!

    Mein kleines Prog wird eine Zeiterfassung. die Tabellen in der DB sind:

    "Abteilungsleiter"
    Adresse,
    Team,
    Vollzeit-Teilzeit,
    Teamleiter,
    StdLohn,
    Name,
    Wochenstunden,
    Vertragsart,
    Urlaubstage,
    Sollstunden

    Beziehung: Arbeitet an
    "Projekt"
    ID
    ProjetName
    ProjektBeschreibung

    Behiehung: Wird abgearbeitet an
    "Tag"
    Startzeit,
    Endzeit,
    Datum,
    Monat,
    Jahr

    Beziehung: Kann sein
    "Feiertag"
    Datum
    Beschreibung

    zudem gibt es eine Beziehung von "Mitarbeiter" zu "Tag" "arbeitet am"

    Den "Username" würde ich dann in die Mitarbeitertabelle mit einfügen, wie auch die Spalte "Aktiv"

    Ich bin am überlegen, ob ich die "Mitarbeiter" Datei noch aufsplitte, damit man im nachhinein noch herauspartialisieren kann, wenn jemand von bspw. Teilzeit auf Vollzeit wechselt.

    Die Abteilungsleiter könnten dann (da sie mehr Rechte haben) die Informationen der Teammitglieder abrufen, wie auch ihre eigenen. Jedes Abteilungsmitglied könnte nur seine eigenen Zeiten einsehen.

    Also, soweit meine Idee.

    Beste Grüße