Share via


sp_helprotect (Transact-SQL)

S’applique à :SQL Server

Retourne un rapport qui indique les autorisations utilisateur pour un objet ou des autorisations d’instruction dans la base de données active.

Important

sp_helprotect ne retourne pas d’informations sur les éléments sécurisables introduits dans SQL Server 2005 (9.x) et les versions ultérieures. Utilisez sys.database_permissions et sys.fn_builtin_permissions à la place.

Ne répertorie pas les autorisations qui sont toujours affectées aux rôles serveur fixes ou aux rôles de base de données fixes. N’inclut pas les connexions ou les utilisateurs qui reçoivent des autorisations en fonction de leur appartenance à un rôle.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_helprotect
    [ [ @name = ] N'name' ]
    [ , [ @username = ] N'username' ]
    [ , [ @grantorname = ] N'grantorname' ]
    [ , [ @permissionarea = ] 'permissionarea' ]
[ ; ]

Arguments

[ @name = ] N’name'

Nom de l’objet dans la base de données active ou une instruction, c’est-à-dire les autorisations à signaler. @name est nvarchar(776), avec une valeur par défaut NULL, qui retourne toutes les autorisations d’objet et d’instruction. Si sa valeur est un objet (table, vue, procédure stockée ou procédure stockée étendue), ce doit être un objet valide dans la base de données en cours. Le nom de l’objet peut inclure un qualificateur de propriétaire dans le formulaire <owner>.<object>.

Si @name est une instruction, il peut s’agir d’une CREATE instruction.

[ @username = ] N’username'

Nom du principal pour lequel les autorisations sont retournées. @username est sysname, avec une valeur par défaut , NULLqui retourne tous les principaux de la base de données active. @username doit exister dans la base de données active.

[ @grantorname = ] N’grantorname'

Nom du principal qui a accordé des autorisations. @grantorname est sysname, avec une valeur par défaut NULL, qui retourne toutes les informations pour les autorisations accordées par n’importe quel principal de la base de données.

[ @permissionarea = ] 'permissionarea'

Chaîne de caractères qui indique s’il faut afficher les autorisations d’objet (chaîne de ocaractères), les autorisations d’instruction (chaîne sde caractères) ou les deux (o s). @permissionarea est varchar(10), avec la valeur par défaut o s. @permissionarea peut être n’importe quelle combinaison de o et s, avec ou sans virgules ou espaces entre o et s.

Valeurs des codes de retour

0 (réussite) ou 1 (échec).

Jeu de résultats

Nom de la colonne Type de données Description
Owner sysname Nom du propriétaire de l’objet.
Object sysname Nom de l'objet.
Grantee sysname Nom du principal auquel des autorisations sont accordées.
Grantor sysname Nom du principal qui a accordé des autorisations au bénéficiaire spécifié.
ProtectType nvarchar(10) Nom du type de protection :

GRANT REVOKE
Action nvarchar(60) Nom de l’autorisation. Les instructions valides d'autorisation varient selon le type d'objet.
Column sysname Type d'autorisation :

All = L’autorisation couvre toutes les colonnes actuelles de l’objet.
New = L’autorisation couvre toutes les nouvelles colonnes qui peuvent être modifiées (à l’aide de l’instruction ALTER ) sur l’objet à l’avenir.
All+New = Combinaison de All et New.

Retourne une période si le type d’autorisation ne s’applique pas aux colonnes.

Notes

Tous les paramètres de la procédure ci-dessous sont facultatifs. Si elles sont exécutées sans paramètre, sp_helprotect affiche toutes les autorisations accordées ou refusées dans la base de données active.

Si certains paramètres seulement sont spécifiés, utilisez les paramètres nommés pour identifier le paramètre spécifique ou NULL comme espace réservé. Par exemple, pour signaler toutes les autorisations pour le propriétaire de la base de données du bénéficiaire (dbo), exécutez le script suivant :

EXEC sp_helprotect NULL, NULL, dbo;

Or

EXEC sp_helprotect @grantorname = 'dbo';

Le rapport de sortie est trié par catégorie d'autorisation, propriétaire, objet, bénéficiaire, fournisseur, catégorie du type de protection, type de protection, action et ID séquentiel de colonne.

Autorisations

Nécessite l'appartenance au rôle public .

Les informations retournées sont sujettes à des restrictions d'accès aux métadonnées. Les entités sur lesquelles le principal n’a pas d’autorisation n’apparaissent pas. Pour plus d'informations, consultez Metadata Visibility Configuration.

Exemples

R. Répertorier les autorisations d’une table

Dans l'exemple ci-dessous, les autorisations relatives à la table titles sont répertoriées.

EXEC sp_helprotect 'titles';

B. Répertorier les autorisations d’un utilisateur

Dans l'exemple ci-dessous, toutes les autorisations que l'utilisateur Judy possède dans la base de données active sont répertoriées.

EXEC sp_helprotect NULL, 'Judy';

C. Répertorier les autorisations accordées par un utilisateur spécifique

L’exemple suivant répertorie toutes les autorisations accordées par l’utilisateur Judy dans la base de données active et utilise NULL comme espace réservé pour les paramètres manquants.

EXEC sp_helprotect NULL, NULL, 'Judy';

D. Répertorier uniquement les autorisations d’instruction

Dans l'exemple ci-dessous, toutes les autorisations d'instruction de la base de données active sont répertoriées et NULL est utilisé comme espace réservé pour les paramètres manquants.

EXEC sp_helprotect NULL, NULL, NULL, 's';

e. Liste des autorisations pour une instruction CREATE

L’exemple suivant répertorie tous les utilisateurs auxquels l’autorisation CREATE TABLE est accordée.

EXEC sp_helprotect @name = 'CREATE TABLE';