Compartir a través de


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 utiliza para devolver información de catálogo. table_name es de tipo nvarchar(384) y no tiene valor predeterminado. Se admite la coincidencia de patrón de caracteres comodín.

[ @table_owner = ] 'table_owner'

Es el propietario de la tabla utilizada para devolver información de catálogo. table_owneres 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.

En SQL Server 2005, si el usuario actual es propietario de una tabla en la que se especifica el nombre, se devuelven las columnas de esa tabla. Si no se especifica owner y el usuario actual no es el propietario de una tabla con name especificado, este procedimiento busca una tabla con 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 tablas formados por tres componentes: (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 (la coincidencia de patrón está desactivada) y 1 (la coincidencia de patrón está activada). fUsePattern es de tipo bit y su valor predeterminado es 1.

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 sobre esta TABLE_NAME para el GRANTEE indicado. En SQL Server, esta columna es siempre igual que 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 ha 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 varias columnas.

UPDATE = GRANTEE puede modificar datos existentes de una o varias 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 alcance de la acción dada para GRANTEE por un privilegio de tabla determinado 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.

Notas

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.

Valores de código de retorno

Ninguno

Ejemplos

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

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

Vea también

Referencia

Procedimientos almacenados del catálogo (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005