Compartir a través de


sp_helprotect (Transact-SQL)

Devuelve un informe con información acerca de los permisos de usuario para un objeto o los permisos de una instrucción en la base de datos actual.

Nota importanteImportante

sp_helprotect no devuelve información acerca de los elementos que pueden protegerse incluidos en SQL Server 2005. Utilice sys.database_permissions y fn_builtin_permissions en su lugar.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • [ @name = ] 'object_statement'
    Es el nombre del objeto de la base de datos actual, o una instrucción, cuyos permisos se van a presentar. El parámetro object_statement es de tipo nvarchar(776) y su valor predeterminado es NULL, que devuelve los permisos de todos los objetos e instrucciones. Si el valor es un objeto (tabla, vista, procedimiento almacenado o procedimiento almacenado extendido), tiene que ser un objeto válido de la base de datos actual. El nombre del objeto puede incluir un calificador de propietario en la forma propietario**.**objeto.

    Si object_statement es una instrucción, puede ser una de las siguientes:

    • CREATE DATABASE

    • CREATE DEFAULT

    • CREATE FUNCTION

    • CREATE PROCEDURE

    • CREATE RULE

    • CREATE TABLE

    • CREATE VIEW

    • BACKUP DATABASE

    • BACKUP LOG

  • [ @username = ] 'security_account'
    Es el nombre de la entidad de seguridad para la que se muestran los permisos. El parámetro security_account es de tipo sysname y su valor predeterminado es NULL, que devuelve todas las entidades de seguridad de la base de datos actual. security_account debe existir en la base de datos actual.

  • [ @grantorname = ] 'grantor'
    Es el nombre de la entidad de seguridad que ha concedido los permisos. El parámetro grantor es de tipo sysname y su valor predeterminado es NULL, que devuelve la información de los permisos concedidos por las entidades de seguridad de la base de datos.

  • [ @permissionarea = ] 'type'
    Es una cadena de caracteres que indica si se muestran permisos de objeto (cadena de caracteres o), permisos de instrucción (cadena de caracteres s), o ambos (os). El parámetro type es de tipo varchar(10) y su valor predeterminado es os. El parámetro type puede ser cualquier combinación de o y s, con o sin comas o espacios entre o y s.

Valores de código de retorno

0 (correcto) o 1 (error)

Conjuntos de resultados

Nombre de columna

Tipo de datos

Descripción

Propietario

sysname

Nombre del propietario del objeto.

Objeto

sysname

Nombre del objeto.

Receptor de permisos

sysname

Nombre de la entidad de seguridad en la que se conceden los permisos.

Otorgante de permisos

sysname

Nombre de la entidad de seguridad que ha concedido los permisos al receptor de permisos especificado.

ProtectType

nvarchar(10)

Nombre del tipo de protección:

GRANT REVOKE

Acción

nvarchar(20)

Nombre del permiso:

  • REFERENCES

  • SELECT

  • INSERT

  • DELETE

  • UPDATE

  • CREATE TABLE

  • CREATE DATABASE

  • CREATE FUNCTION

  • CREATE RULE

  • CREATE VIEW

  • CREATE PROCEDURE

  • EXECUTE

  • BACKUP DATABASE

  • CREATE DEFAULT

  • BACKUP LOG

Columna

sysname

Tipo de permiso:

All = Permiso sobre todas las columnas actuales del objeto.

New = Permiso sobre las nuevas columnas del objeto que se pueden cambiar (mediante la instrucción ALTER) posteriormente.

All+New = Combinación de Todas y Nuevas.

Notas

Todos los parámetros del siguiente procedimiento son opcionales. Si se ejecuta sin parámetros, sp_helprotect presenta todos los permisos que se han concedido o denegado en la base de datos actual.

Si se especifican algunos parámetros, pero no todos, se tienen que utilizar parámetros con nombre para identificar el parámetro concreto o NULL como marcador de posición. Por ejemplo, para presentar todos los permisos del propietario de la base de datos del otorgante de permisos (dbo), ejecute:

EXEC sp_helprotect NULL, NULL, dbo

O bien

EXEC sp_helprotect @grantorname = 'dbo'

El resultado está ordenada por categoría de los permisos, propietario, objeto, beneficiario, asignador, categoría del tipo de protección, tipo de protección, acción e Id. secuencial de columna.

Permisos

Requiere la pertenencia a la función public.

La información mostrada está sometida a restricciones de acceso a los metadatos. No se mostrarán las entidades en las que la entidad de seguridad no tiene permiso. Para obtener más información, vea Configuración de visibilidad de los metadatos.

Ejemplos

A. Presentar los permisos de una tabla

En el siguiente ejemplo se presentan los permisos de la tabla titles.

EXEC sp_helprotect 'titles'

B. Presentar los permisos de un usuario

En el siguiente ejemplo se presentan todos los permisos que el usuario Judy tiene en la base de datos actual.

EXEC sp_helprotect NULL, 'Judy'

C. Presentar los permisos concedidos por un usuario específico

En el siguiente ejemplo se presentan todos los permisos concedidos por el usuario Judy en la base de datos actual, con NULL como marcador de posición en los parámetros no especificados.

EXEC sp_helprotect NULL, NULL, 'Judy'

D. Presentar sólo los permisos de las instrucciones

En el siguiente ejemplo se presentan todos los permisos de instrucciones de la base de datos actual, con NULL como marcador de posición en los parámetros no especificados.

EXEC sp_helprotect NULL, NULL, NULL, 's'