Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Userzugriff auf einzelne Tabellen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von brain1234, 7 Februar 2013.

  1. brain1234

    brain1234 Neuer Benutzer

    Hallo zusammen,

    ich hab jetzt schon gesucht, aber für einen "nicht so ganz sql fitten" noch nicht das richtige gefunden.

    Wir haben eine Datenbank mit x Tabellen. Jetzt sollen User kreiert werden, die nur auf einzelne Tabellen dieser Datenbank Lese Berechtigung erhalten sollen. Ist das über das Management Studio möglich wenn ja wie? Wir haben SQL Server 2008 R2.

    Danke für die Hilfe.

    vg
     
  2. ukulele

    ukulele Datenbank-Guru

    Du legst unter Sicherheit\Anmeldungen deine User an und weist ihn zunächst mal keine Rechte zu. Dann gehst du auf die spezielle Tabelle die frei geschaltet werden soll auf Eigenschaften\Berechtigungen und gibst ihm dort Lese- und oder Schreibrechte. Das ganze läßt sich über Rollen (sowas wie Gruppen) auch komfortabel für mehrere User machen.
     
  3. Tommi

    Tommi Datenbank-Guru

    Hi,

    das ist ganz einfach, aber auch mit etwas Fleißarbeit verbunden.

    Anmeldung unter Sicherheit > Anmeldungen anlegen und diesem in der Benutzerzuordnung die Berechtigung auf die Datenbank mit "public" geben (So erhält die Anmeldung noch keine Lese-Berechtigung auf die Datenbank!)

    In der Datenbak selbst jetzt das freizugebende Element, also Tabelle, View o.ä. auswählen und im Kontext-Menü "Eigenschaften" wählen
    Dann unter "Berechtigung" mit der Schaltfläche "Suchen" die angelegte Anmeldung auswählen und entsprechend die Berechtigung "Auswählen" vergeben. So bekommt diese Anmeldung NUR Lese-Berechtigung auf dieses EINE Element.

    Dieser Schritt muss für jedes zu Berechtigende Element wiederholt werden. (Geht auch automatisiert über ein T-SQL-Skript, aber das war ja nicht deine Frage ;) )

    Viele Grüße,
    Tommi
     
  4. brain1234

    brain1234 Neuer Benutzer

    hi,

    ihr seid ja schneller als die Feuerwehr. Danke euch. Genau das hab ich gesucht.

    vg
     
  5. brain1234

    brain1234 Neuer Benutzer

    hi,

    so jetzt hab ich gleich noch eine Frage. Wie füge ich per Script oder ohne, diesen User jeder Tabelle hinzu. So das ich nachher, aus den wenigen Tabellen wo er nicht zugreifen darf, ihn wieder raus löschen kann.

    Danke für eure hilfe.

    vg
     
  6. Tommi

    Tommi Datenbank-Guru

    Hi,

    man kann hier auch den umgekehrten Weg nehmen.
    Du vergibts bei der Benutzerzuordnung (unter Sicherheit > Anmeldung) für die Datenbank nicht nur die Berechtigung "public" sondern auch die Datenbank-Rolle "db_datareader".
    Damit schaltest du die Lese-Berechtigung für die gesamte Datenbank (alle Elemente) frei.
    Dann musst du wieder in der Datenbank selbst auf das Element gehen (Tabelle o. View) und wie zuvor Beschrieben (Kontextmenü - Eigenschaften - Berechtigungen) statt der Berechtigung "Auswählen"
    alle Punkte unter "Verweigern" auswählen.

    Viele Grüße,
    Tommi
     
  7. ukulele

    ukulele Datenbank-Guru

    Du kannst in den Eigenschaften des Users mehrere standart DB Rollen für den ganzen Server oder die Datenbanken zuweisen und ihnen die Rechte auf einige andere Tabellen dann explizit verweigern. Oder du legst eine eigene Rolle an die alle passenden Tabellen beinhaltet.
     
  8. brain1234

    brain1234 Neuer Benutzer

    perfekt. das ist die beste Lösung.

    Danke euch
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden