2009-04-17 11 views
3

J'ai un utilisateur dans ma base de données, et je veux lui accorder l'autorisation de lire une seule vue, rien de plus, pas de tables, rien.Accorder l'autorisation à seulement une vue

Comment est-ce que je peux faire ceci?

Merci beaucoup.

PS: J'utilise Essayez cette MS SQL Server 2005

+0

Quels SGBDR utilisez-vous? –

Répondre

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

Reportez-vous à GRANT Object Permissions pour d'autres exemples d'octroi de l'autorisation

+0

J'ai fait ça. Cependant, je reçois toujours "autorisation SELECT a été refusée sur l'objet" pour un objet sous-jacent. Le Login a est un membre du rôle Public et dispose d'une autorisation Select pour la vue. Je ne pensais pas que j'avais besoin d'ajouter une permission aux objets sous-jacents lors de la permission d'une vue? – MrEdmundo

+0

le lien «accorder des autorisations d'objet» l'état et assurez-vous que vous avez également des droits d'administrateur – TStamper

2

:

GRANT SELECT ON whatever_your_view_is_called TO bob_or_whatever_his_name_is 
+0

Deux questions: Un nouvel utilisateur n'a accès à aucun objet dans la base de données? Les autres utilisateurs ont-ils accès à la nouvelle vue? Je veux que seul le nouvel utilisateur y ait accès. – rpf

+1

Par défaut, personne d'autre que le "propriétaire de la base de données (dbo)" n'a accès à quoi que ce soit, à moins que vous n'accordiez spécifiquement un accès en tant que dbo. –

0

Ceci est assez simple à faire avec l'interface utilisateur d'Enterprise Manager ou en utilisant le code SQL affiché par quelques autres. Une chose que je voudrais ajouter est que vous voulez éviter de distribuer des droits sur le rôle public sur un objet que vous voudrez verrouiller plus tard parce que chaque nouvel utilisateur que vous ajoutez sera automatiquement un membre de ce rôle.

Questions connexes