web-dev-qa-db-de.com

Wie kann ich nur Lesezugriff auf eine einzelne Tabelle in der SQL Server-Datenbank gewähren?

Ich möchte für einen bestimmten Benutzer - xyz - nur Lesezugriff auf eine einzelne Tabelle in der SQL Server-Datenbank gewähren

Ich habe diese Fragen durchgegangen:

Wie kann ich einem Benutzer Lesezugriff auf eine Datenbank in SQL Server gewähren?

Erteilen eines SQL Server-Anmeldezugriffs auf eine Datenbank - SQL Server

beste Möglichkeit, nur Lesezugriff auf 2 Tabellen in SQL Server 2005 zu gewähren?

Für mich ergeben sich jedoch einige grundlegende Fragen: Was ist der Unterschied, wenn man den Zugang durch Rolle und Benutzernamen gewährt?

Bitte geben Sie einen effizienten Weg dafür an

16
Sree

Ich habe dieses Problem auf diese Weise umgangen:

CREATE LOGIN XYZ
WITH PASSWORD = 'PASSWORD'

Nachdem das Login für XYZ erstellt wurde, erstellen Sie einen Benutzer für das oben erstellte Login

CREATE USER xyz FOR LOGIN xyz

Erteilen Sie dann die Berechtigung select, update, in meinem Fall wird sie nur für eine bestimmte Tabelle ausgewählt

GRANT SELECT ON DBNAME.TABLE_NAME TO USERNAME

Die Quellen, auf die ich mich bezogen habe, sind

  1. http://technet.Microsoft.com/en-us/library/aa337545.aspx (beziehen Sie sich auf den unteren Codeteil erstellen Sie einen Datenbankbenutzer).

  2. http://social.msdn.Microsoft.com/Forums/sqlserver/de/959f9307-0494-4883-9d17-fad684705864/grant-select-permission-on-a-table?forum=sqldatabaseengine

30
Sree

Die Erteilung des Zugriffs über den Benutzernamen gilt nur für diesen Benutzer.

Das Erteilen des Zugriffs über die Rolle gilt jedoch für alle Benutzer, die dieser Rolle angehören. Die Rolle wird zum Zuweisen von Berechtigungen zu einer Gruppe von Benutzern verwendet.