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.
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 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 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.
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%';