none
Benötige Hilfe bei Berechtigungen und Sicherheit RRS feed

  • 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
    Donnerstag, 16. April 2020 19:40

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
    Donnerstag, 16. April 2020 20:16
    Moderator

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
    Donnerstag, 16. April 2020 20:16
    Moderator
  • Ok. Besten Dank für die Hinweise. 


    .::datekk::.

    Freitag, 17. April 2020 07:04