Partager via


sp_helprotect (Transact-SQL)

Retourne un rapport contenant des informations sur les autorisations utilisateur concernant un objet ou des autorisations d'instruction, dans la base de données active.

Important

La procédure sp_helprotect ne retourne pas d'informations sur les éléments sécurisables introduits dans SQL Server 2005. Utilisez sys.database_permissions et fn_builtin_permissions à la place.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

sp_helprotect [ [ @name = ] 'object_statement' ] 
     [ , [ @username = ] 'security_account' ] 
     [ , [ @grantorname = ] 'grantor' ] 
     [ , [ @permissionarea = ] 'type' ]

Arguments

  • [ @name = ] 'object_statement'
    Nom de l'objet dans la base de données active, ou instruction, disposant des autorisations à signaler. object_statement est de type nvarchar(776) et sa la valeur par défaut, NULL, 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 identificateur de propriétaire de la forme propriétaire**.**objet.

    Si object_statement est une instruction, ce peut être l'une des instructions suivantes :

    • CREATE DATABASE

    • CREATE DEFAULT

    • CREATE FUNCTION

    • CREATE PROCEDURE

    • CREATE RULE

    • CREATE TABLE

    • CREATE VIEW

    • BACKUP DATABASE

    • BACKUP LOG

  • [ @username = ] 'security_account'
    Nom de l'entité de sécurité pour laquelle des autorisations sont retournées. security_account est de type sysname et sa valeur par défaut, NULL, retourne toutes les entités de sécurité dans la base de données active. security_account doit exister dans la base de données active.

  • [ @grantorname = ] 'grantor'
    Nom de l'entité de sécurité qui a accordé les autorisations. grantor est de type sysname et sa valeur par défaut, NULL, retourne toutes les informations sur les autorisations accordées par les entités de sécurité dans la base de données.

  • [ @permissionarea = ] 'type'
    Chaîne de caractères indiquant s'il faut afficher les autorisations d'objet (chaîne o), les autorisations d'instruction (chaîne s), ou les deux (os). type est de type varchar(10) et a la valeur par défaut os. type peut être composé de toutes les combinaisons de o et s, avec ou sans virgule ou espace entre les o et les s.

Valeurs de code retournées

0 (succès) ou 1 (échec)

Ensembles de résultats

Nom de colonne

Type de données

Description

Propriétaire

sysname

Nom du propriétaire de l'objet.

Objet

sysname

Nom de l'objet.

Bénéficiaire

sysname

Nom de l'entité de sécurité à laquelle des autorisations sont accordées.

Fournisseur

sysname

Nom de l'entité de sécurité qui a accordé des autorisations au bénéficiaire spécifié.

ProtectType

nvarchar(10)

Nom du type de protection :

GRANT REVOKE

Action

nvarchar(20)

Nom de l'autorisation :

  • REFERENCES

  • SELECT

  • INSERT

  • DELETE

  • UPDATE

  • CREATE TABLE

  • CREATE DATABASE

  • CREATE FUNCTION

  • CREATE RULE

  • CREATE VIEW

  • CREATE PROCEDURE

  • EXECUTE

  • BACKUP DATABASE

  • CREATE DEFAULT

  • BACKUP LOG

Colonne

sysname

Type d'autorisation :

All = l'autorisation couvre toutes les colonnes en cours de l'objet.

New = l'autorisation couvre toutes les nouvelles colonnes susceptibles d'être modifiées (à l'aide de l'instruction ALTER) pour l'objet ultérieurement.

All+New = combinaison de All et New.

Notes

Tous les paramètres de la procédure ci-dessous sont facultatifs. Si elle est exécutée sans paramètre, la procédure sp_helprotect affiche toutes les autorisations qui ont été 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 du propriétaire de la base de données des fournisseurs (dbo), exécutez le code suivant :

EXEC sp_helprotect NULL, NULL, dbo

ou

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 l'entité de sécurité ne possède pas d'autorisation n'apparaissent pas. Pour plus d'informations, consultez Configuration de la visibilité des métadonnées.

Exemples

A. Répertorier les autorisations pour 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 pour 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

Dans l'exemple ci-dessous, toutes les autorisations qui ont été accordées par l'utilisateur Judy dans 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, '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'