Userzugriff auf einzelne Tabellen

brain1234

Neuer Benutzer
Beiträge
4
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
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.702
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.
 

Tommi

Datenbank-Guru
Beiträge
290
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
 

brain1234

Neuer Benutzer
Beiträge
4
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
 

Tommi

Datenbank-Guru
Beiträge
290
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
 

ukulele

Datenbank-Guru
Beiträge
4.702
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.
 
Werbung:
Oben