2009-04-17 3 views
3

Ich habe einen Benutzer in meiner Datenbank, und ich möchte ihm die Erlaubnis gewähren, nur eine Ansicht zu lesen, nichts mehr, keine Tabellen, nichts.Erteilen Sie die Erlaubnis, nur eine Ansicht zu sehen

Wie kann ich das tun?

Vielen Dank.

PS: Ich bin mit MS SQL Server 2005

+0

Welche RDBMS verwenden Sie? –

Antwort

7
USE DB1; 
GRANT SELECT ON OBJECT:: View1 TO JohnDoe; 
GO 

für weitere Beispiele GRANT Object Permissions Siehe Berechtigungs Gewährung

+0

Ich habe das getan. Allerdings bekomme ich immer noch "SELECT Berechtigung wurde für das Objekt verweigert" für ein zugrunde liegendes Objekt. Die Anmeldung ist Mitglied der Rolle "Öffentlich" und hat die Berechtigung "Auswählen" für die Ansicht. Ich dachte nicht, dass ich den zugrunde liegenden Objekten Berechtigungen hinzufügen müsste, wenn ich einer Ansicht die Berechtigung erteile? – MrEdmundo

+0

den Link 'Objektberechtigungen erteilen' dies und stellen Sie sicher, dass Sie auch Administratorrechte haben – TStamper

2

Versuchen Sie folgendes:

GRANT SELECT ON whatever_your_view_is_called TO bob_or_whatever_his_name_is 
+0

Zwei Fragen: Ein neuer Benutzer hat keinen Zugriff auf ein Objekt in der Datenbank? Die anderen Benutzer haben Zugriff auf die neue Ansicht? Ich möchte, dass nur der neue Benutzer darauf zugreifen kann. – rpf

+1

Standardmäßig hat niemand außer dem "Datenbankbesitzer (dbo)" Zugriff auf irgendetwas, es sei denn, Sie gewähren als dbo ausdrücklich Zugriff. –

0

Das ist ziemlich einfach zu tun die UI von Enterprise Manager oder den SQL-Code, der von einigen anderen veröffentlicht wird.

Eine Sache, die ich hinzufügen möchte, ist, dass Sie AVOID verteilen Rechte für die öffentliche Rolle auf jedes Objekt, das Sie später vielleicht sperren möchten, da jeder neue Benutzer, den Sie hinzufügen wird automatisch ein Mitglied davon sein Rolle.