sp_column_privileges (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure 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 = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @column_name = ] N'column_name' ]
[ ; ]
Argumentos
[ @table_name = ] N'table_name'
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 patrones comodín.
[ @table_owner = ] N'table_owner'
Propietario de la tabla utilizada para devolver información de catálogo. @table_owner es sysname, con un valor predeterminado de NULL
. No se admite la coincidencia de patrones 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 (DBMS) subyacente.
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
los privilegios buscan 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 = ] N'table_qualifier'
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 (<qualifier>.<owner>.<name>
). En SQL Server, esta columna representa el nombre de la base de datos. En algunos productos, representa el nombre de servidor del entorno de base de datos de la tabla.
[ @column_name = ] N'column_name'
Una sola columna que se usa cuando solo se obtiene una columna de información de catálogo. @column_name es nvarchar(384), con un valor predeterminado de NULL
. Si no se especifica @column_name , se devuelven todas las columnas. En SQL Server, @column_name representa el nombre de columna como se muestra en la sys.columns
tabla. @column_name puede incluir caracteres comodín mediante patrones de coincidencia de caracteres comodín del DBMS subyacente. Para obtener la interoperabilidad máxima, el cliente de puerta de enlace debe asumir solo la coincidencia de patrones estándar ISO (los %
caracteres comodín y _
).
Conjunto de resultados
sp_column_privileges
es equivalente a SQLColumnPrivileges
en ODBC. Los resultados devueltos se ordenan mediante 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 la tabla. Este campo puede ser NULL . |
TABLE_OWNER |
sysname | Nombre del propietario. 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, para cada columna del TABLE_NAME devuelto. Este campo siempre devuelve un valor. |
GRANTOR |
sysname | Nombre de usuario de la base de datos a la que se concedió permisos para COLUMN_NAME la lista GRANTEE . En SQL Server, esta columna siempre es la misma que .TABLE_OWNER Este campo siempre devuelve un valor.La GRANTOR columna puede ser el propietario de la base de datos (TABLE_OWNER ) o un usuario al que el propietario de la base de datos concedió permisos mediante la WITH GRANT OPTION cláusula de la GRANT instrucción . |
GRANTEE |
sysname | Nombre de usuario de base de datos al que se le concedieron permisos en este COLUMN_NAME objeto por el enumerado GRANTOR . En SQL Server, esta columna siempre incluye un usuario de base de datos de la sysusers tabla. 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 insertan nuevas filas (por ) GRANTEE en la tabla.UPDATE = GRANTEE puede modificar los datos existentes en la columna.REFERENCES = GRANTEE puede hacer referencia a una columna de una tabla externa en una relación de clave principal o clave externa. Las relaciones entre clave principal y clave externa se definen mediante restricciones de tabla. |
IS_GRANTABLE |
varchar(3) | Indica si GRANTEE se permite conceder permisos a otros usuarios (a menudo denominado "conceder con concesión"). Puede ser YES , NO o NULL . Un valor desconocido o NULL , hace referencia a un origen de datos para el que no se aplica la "concesión con concesión". |
Comentarios
Con SQL Server, los permisos se conceden con la GRANT
instrucción y se quitan mediante la REVOKE
instrucción .
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';