2010-10-06 4 views
2

Je suis membre uniquement du rôle db_datareader sur une base de données et je ne peux pas voir les lignes dans sysobjects pour les procédures stockées que je connais.Comment se fait-il que je ne puisse pas voir les lignes dans sysobjects pour les objets que je connais?

En outre, dans SQL Server Managedemnt Studio, l'expansion du nœud Programmability -> Stored Procedures dans l'Explorateur d'objets n'affiche aucune procédure stockée.

Est-ce dû à des autorisations insuffisantes? Si oui, de quelles autorisations ai-je besoin pour pouvoir voir toutes les lignes dans sysobjects, et aussi pour voir quelles autorisations ont été accordées sur chaque objet?

+0

sont-ils sur sys.sysobjects? –

Répondre

5

Il vous manque probablement l'autorisation VIEW DEFINITION. Pour obtenir la permission sur un schéma entier, utilisez:

GRANT VIEW DEFINITION ON SCHEMA::dbo TO [UserName] 

Pour une procédure individuelle:

GRANT VIEW DEFINITION ON YourStoredProcedureName TO [UserName] 
+0

@Dianel Fortunov a fait ce travail? –

+0

@Gabriel Oui, en effet. Merci beaucoup! –

0

utilisez-vous la base de données? la bonne?

use [db_x] 
go 
select * from sysobjects 
where type = 'P' 
+0

Oui, j'utilise la bonne base de données. En outre, dans SQL Server Managedemnt Studio, l'expansion du noeud 'Programmability -> Stored Procedures' dans l'Explorateur d'objets n'affiche aucune procédure stockée. –

Questions connexes