sp_column_privileges (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Devuelve información acerca de los privilegios de columna de una tabla del entorno actual.

Convenciones de sintaxis de Transact-SQL

Sintaxis

  
sp_column_privileges [ @table_name = ] 'table_name'   
     [ , [ @table_owner = ] 'table_owner' ]   
     [ , [ @table_qualifier = ] 'table_qualifier' ]   
     [ , [ @column_name = ] 'column' ]  

Argumentos

[ @table_name= ] 'table_name'
Es la tabla que se usa para devolver información de catálogo. table_name es sysname, sin ningún valor predeterminado. No 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 sysname, con un valor predeterminado de NULL. No se admite la coincidencia de patrón de caracteres comodín. Si no se especifica table_owner , se aplican las reglas de visibilidad de tabla predeterminadas del sistema de administración de bases de datos subyacente (DBMS).

Si el usuario actual es propietario de una tabla con el nombre especificado, se devuelven las columnas de esa tabla. Si no se especifica table_owner y el usuario actual no posee una tabla con el table_name especificado, sp_column privilegios busca una tabla con el table_name especificado propiedad del propietario de la base de datos. Si hay una, se devuelven las columnas de esa tabla.

[ @table_qualifier= ] 'table_qualifier'
Es el nombre del calificador de tabla. table_qualifier es sysname, con un valor predeterminado de NULL. Varios productos de DBMS admiten la nomenclatura de tres partes para tablas (calificador.propietario.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.

[ @column_name= ] 'column'
Es una sola columna que se usa cuando solo se obtiene una columna de información del catálogo. column es nvarchar(384), con un valor predeterminado de NULL. Si no se especifica column , se devuelven todas las columnas. En SQL Server, la columna representa el nombre de columna tal y como se muestra en la tabla sys.columns. column puede incluir caracteres comodín mediante patrones de coincidencia de caracteres comodín del DBMS subyacente. Para obtener una interoperabilidad máxima, el cliente de puerta de enlace solo debe dar por supuesta la coincidencia de patrón estándar de ISO (caracteres comodín % y _).

Conjuntos de resultados

sp_column_privileges equivale a SQLColumnPrivileges en ODBC. Los resultados devueltos se ordenan por TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, COLUMN_NAME y PRIVILEGE.

Nombre de la columna Tipo de datos Descripción
TABLE_QUALIFIER sysname Nombre del calificador de tabla. 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.
COLUMN_NAME sysname Nombre de columna por cada columna devuelta de TABLE_NAME. Este campo siempre devuelve un valor.
GRANTOR sysname Nombre del usuario de la base de datos que ha concedido permisos para COLUMN_NAME al GRANTEE presentado. En SQL Server, esta columna siempre es la misma que la TABLE_OWNER. Este campo siempre devuelve un valor.

La columna GRANTOR puede ser el propietario de la base de datos (TABLE_OWNER) o un usuario al que el propietario de la base de datos le haya concedido permisos mediante la cláusula WITH GRANT OPTION en la instrucción GRANT.
GRANTEE sysname Nombre del usuario de la base de datos al que el GRANTOR presentado le ha concedido permisos para COLUMN_NAME. En SQL Server, esta columna siempre incluye un usuario de base de datos de la tabla sysusers. Este campo siempre devuelve un valor.
PRIVILEGE varchar(32) Uno de los permisos de columna disponibles. Los permisos de columna pueden ser uno de los valores siguientes (u otros valores compatibles con el origen de datos cuando se define la implementación):

SELECT = GRANTEE puede recuperar datos de las columnas.

INSERT = GRANTEE puede proporcionar datos para esta columna cuando se inserten nuevas filas (por parte de GRANTEE) en la tabla.

UPDATE = GRANTEE puede modificar datos existentes en la columna.

REFERENCES = GRANTEE puede hacer referencia a una columna de una tabla externa en una relación entre clave principal y clave externa. Las relaciones entre clave principal y clave externa se definen mediante restricciones de tabla.
IS_GRANTABLE varchar(3) Indica si se permite que GRANTEE conceda permisos a otros usuarios (a menudo se hace referencia a esta operación como 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

Con SQL Server, se conceden permisos con la instrucción GRANT y se quitan mediante la instrucción REVOKE.

Permisos

Es necesario contar con un permiso de tipo SELECT sobre el esquema.

Ejemplos

En el siguiente ejemplo se devuelve información acerca de privilegios de columna de una tabla específica.

USE AdventureWorks2022;  
GO  
EXEC sp_column_privileges @table_name = 'Employee'   
    ,@table_owner = 'HumanResources'  
    ,@table_qualifier = 'AdventureWorks2022'  
    ,@column_name = 'SalariedFlag';  

Consulte también

GRANT (Transact-SQL)
REVOKE (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)