Benutzer mit den meisten Antworten
Benötige Hilfe bei Berechtigungen und Sicherheit

Frage
-
Hi,
ich habe eine SQL Express Datenbank. Über das Managementstudio logge ich mich als Admin ja mit SA ein.
Nun habe ich verschiedene Anwendungen entwickelt, die auf die Datenbank zugreifen. Für jede dieser Anwendungen habe ich einen Benutzer (Login) in der Datenbank angewählt. Nennen wir diesen Nutzer mal "App1"
Ich möchte nun, dass App1 nur Lesezugriff auf die Tabelle "Kundenliste" erhält.
Leider weiß ich nicht, wie ich das anstelle.
App1 hat derzeit folgende Einstellungen:
Schemas in Besitz: datareader, denydatareader, denydatawriter
Mitgliedschaft: datareader
Sicherungsfähige Elemente: ist leer
Logge ich mich mit den Zugangsdaten von App1 im Managementstudio ein, werden alle Datenbanken angezeigt. Kann man das ändern und nur die DB anzeigen, für die dieser User zugelassen ist?
Weiterhin sieht der User App1 alle Tabellen, Sichten usw., kann diese öffnen und auf alle Tabellen, Views zumindest SELECT anwenden. Wie kann ich das verhindern und nur eine Tabelle anzeigen lassen und nur für diese eine Tabelle den Zugriff via Select erlauben?
Wie kann ich verhindern, dass App1 sich überhaupt mit dem Managmentstudio einloggen kann?
Es wäre Klasse, wenn mir hier mal jemand helfen könnte, die richtigen Einstellungen zu finden.
.::datekk::.
- Bearbeitet datekk2 Donnerstag, 16. April 2020 19:51
Antworten
-
Hi,
db_datareader ist für User gedacht, die eben alle Daten aller Tabellen lesen dürfen. Man kann das zwar wieder einschränken aber das macht ja bei dir wenig Sinn.
Daher nimm die Mitgliedschaft db_datareader wieder weg und erteile dem User hierüber die SELECT Rechte für deine Tabelle:
GRANT SELECT ON Kundenliste TO App1
Um die Datenbanken, auf die der User keinen Zugriff hat, auszublenden, kannst Du bspw.:
REVOKE VIEW ANY DATABASE FROM PUBLIC
verwenden.
Dass der User sich mit dem Management Studio einloggt, kannst Du nicht verhindern, wenn der User das Passwort kennt.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport
@ConnectOurPeople - Hilfsangebot - Videotelefoniesysteme für isolierte Menschen (keine Werbung!)- Als Antwort markiert datekk2 Freitag, 17. April 2020 07:04
Alle Antworten
-
Hi,
db_datareader ist für User gedacht, die eben alle Daten aller Tabellen lesen dürfen. Man kann das zwar wieder einschränken aber das macht ja bei dir wenig Sinn.
Daher nimm die Mitgliedschaft db_datareader wieder weg und erteile dem User hierüber die SELECT Rechte für deine Tabelle:
GRANT SELECT ON Kundenliste TO App1
Um die Datenbanken, auf die der User keinen Zugriff hat, auszublenden, kannst Du bspw.:
REVOKE VIEW ANY DATABASE FROM PUBLIC
verwenden.
Dass der User sich mit dem Management Studio einloggt, kannst Du nicht verhindern, wenn der User das Passwort kennt.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport
@ConnectOurPeople - Hilfsangebot - Videotelefoniesysteme für isolierte Menschen (keine Werbung!)- Als Antwort markiert datekk2 Freitag, 17. April 2020 07:04