sp_table_privileges (Transact-SQL)

Devuelve una lista de permisos de tabla (como INSERT, DELETE, UPDATE, SELECT o REFERENCES) para la tabla o las tablas especificadas.

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

Sintaxis

sp_table_privileges [ @table_name = ] 'table_name'   
     [ , [ @table_owner = ] 'table_owner' ] 
     [ , [ @table_qualifier = ] 'table_qualifier' ] 
     [ , [ @fUsePattern = ] 'fUsePattern' ]

Argumentos

  • [ @table_name = ] 'table_name'
    Es la tabla que se usa para devolver información de catálogo. table_name es de tipo nvarchar(384) y no tiene ningún valor predeterminado. Se admite la coincidencia de patrón de caracteres comodín.

  • [ @table_owner = ] 'table_owner'
    Es el propietario de la tabla que se utiliza para devolver información de catálogo. table_owner es de tipo nvarchar(384) y su valor predeterminado es NULL. Se admite la coincidencia de patrón de caracteres comodín. Si no se especifica el propietario, se aplican las reglas de visibilidad de tabla predeterminadas del DBMS subyacente.

    Si el usuario actual posee una tabla con el nombre especificado, se devuelven las columnas de dicha tabla. Si no se especifica owner y el usuario actual no es el propietario de una tabla con el valor de name especificado, este procedimiento busca una tabla con el valor de table_name especificado que pertenezca al propietario de la base de datos. Si existe una, se devuelven las columnas de esa tabla.

  • [ @table_qualifier = ] 'table_qualifier'
    Es el nombre del calificador de la tabla. table_qualifier es de tipo sysname y su valor predeterminado es NULL. Varios productos DBMS admiten nombres de tres partes para las tablas (qualifier.owner.name). En SQL Server, esta columna representa el nombre de la base de datos. En algunos productos, representa el nombre del servidor del entorno de base de datos de la tabla.

  • [ @fUsePattern = ] 'fUsePattern'
    Determina si los caracteres de subrayado (_), porcentaje (%) y corchete ([ o ]) se interpretan como caracteres comodín. Los valores válidos son 0 (coincidencia de patrón desactivada) y 1 (coincidencia de patrón activada). fUsePattern es de tipo bit y su valor predeterminado es 1.

Valores de código de retorno

Ninguno

Conjuntos de resultados

Nombre de columna

Tipo de datos

Descripción

TABLE_QUALIFIER

sysname

Nombre del calificador de la tabla. En SQL Server, esta columna representa el nombre de la base de datos. Este campo puede ser NULL.

TABLE_OWNER

sysname

Nombre del propietario de la tabla. Este campo siempre devuelve un valor.

TABLE_NAME

sysname

Nombre de la tabla. Este campo siempre devuelve un valor.

GRANTOR

sysname

Nombre del usuario de la base de datos que ha concedido permisos para TABLE_NAME al GRANTEE que aparece. En SQL Server, esta columna es siempre la misma que en TABLE_OWNER. Este campo siempre devuelve un valor. Asimismo, la columna GRANTOR podría ser el propietario de la base de datos (TABLE_OWNER) o un usuario al que el propietario de la base de datos haya concedido permiso mediante la cláusula WITH GRANT OPTION en la instrucción GRANT.

GRANTEE

sysname

Nombre del usuario de la base de datos al que GRANTOR ha concedido permisos sobre TABLE_NAME. En SQL Server, esta columna siempre incluye un usuario de base de datos de la vista del sistema sys.database_principals. Este campo siempre devuelve un valor.

PRIVILEGE

sysname

Uno de los permisos de tabla disponibles. Los permisos de tabla pueden ser uno de los valores siguientes (u otros valores que el origen de datos admita al definirse la implementación):

SELECT = GRANTEE puede recuperar datos para una o varias columnas.

INSERT = GRANTEE puede proporcionar datos para nuevas filas de una o más de las columnas.

UPDATE = GRANTEE puede modificar datos existentes de una o más de las columnas.

DELETE = GRANTEE puede quitar filas de la tabla.

REFERENCES = GRANTEE puede hacer referencia a una columna de una tabla externa en una relación entre clave principal y clave externa. En SQL Server, las relaciones entre clave principal y clave externa se definen con restricciones de tabla.

El ámbito de acción dado a GRANTEE por un privilegio de tabla específico depende del origen de datos. Por ejemplo, el privilegio UPDATE podría permitir que GRANTEE actualizara todas las columnas de una tabla en un origen de datos y sólo aquellas columnas para las que GRANTOR tiene el privilegio UPDATE en otro origen de datos.

IS_GRANTABLE

sysname

Indica si se permite que GRANTEE conceda permisos a otros usuarios (que a menudo se conoce como el permiso “conceder por concesión”). Puede ser YES, NO o NULL. Un valor desconocido (o NULL) hace referencia a un origen de datos para el que "conceder por concesión" no se aplica.

Comentarios

El procedimiento almacenado sp_table_privileges es equivalente a SQLTablePrivileges en ODBC. Los resultados devueltos se ordenan por TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME y PRIVILEGE.

Permisos

Requiere el permiso SELECT en el esquema.

Ejemplos

El siguiente ejemplo devuelve información de privilegios de todas las tablas cuyos nombres comiencen por la palabra Contact.

USE AdventureWorks2008R2;
GO
EXEC sp_table_privileges 
   @table_name = 'Contact%';