Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia administrada de Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Punto de conexión de SQL Analytics en Microsoft Fabric
Almacén en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
Devuelve una fila por cada permiso o permiso de excepción de columnas en la base de datos. En las columnas, hay una fila por cada permiso que sea diferente del permiso de objeto correspondiente. Si el permiso de columna es el mismo que el permiso de objeto correspondiente, no hay fila para este permiso y se aplicará el permiso del objeto.
Important
Los permisos de columna reemplazan los permisos de objeto en la misma entidad.
| Nombre de la columna | Tipo de dato | Description |
|---|---|---|
| class | tinyint | Identifica la clase en que existe el permiso. Para más información, consulte sys.securable_classes (Transact-SQL). 0 = Base de datos 1 = Objeto o columna 3 = Esquema 4 = Entidad de seguridad de la base de datos 5 = Ensamblado : se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. 6 = Tipo 10 = Colección de esquemas XML: Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. 15 = Tipo de mensaje: se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. 16 = Contrato de servicio: se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. 17 = Servicio : se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. 18 = Enlace de servicio remoto: se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. 19 = Ruta : se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. 23 =Catálogo de texto completo: se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. 24 = Clave simétrica: se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. 25 = Certificado : se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. 26 = Clave asimétrica: se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. 29 = Lista de palabras irrelevantes de texto completo: se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. 31 = Lista de propiedades de búsqueda: se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. 32 = Credencial con ámbito de base de datos: se aplica a: SQL Server 2016 (13.x) y versiones posteriores. 34 = Lenguaje externo: se aplica a: SQL Server 2019 (15.x) y versiones posteriores. |
| class_desc | nvarchar(60) | Descripción de la clase en la que existe el permiso. DATABASE OBJECT_OR_COLUMN SCHEMA DATABASE_PRINCIPAL ASSEMBLY TYPE XML_SCHEMA_COLLECTION MESSAGE_TYPE SERVICE_CONTRACT SERVICE REMOTE_SERVICE_BINDING ROUTE FULLTEXT_CATALOG SYMMETRIC_KEYS CERTIFICATE ASYMMETRIC_KEY LISTA DE PALABRAS IRRELEVANTES DE TEXTO COMPLETO BUSCAR LISTA DE PROPIEDADES CREDENCIAL CON ÁMBITO DE BASE DE DATOS IDIOMA EXTERNO |
| major_id | int | Id. del elemento en que existe el permiso, interpretado según la clase. Normalmente, el major_id tipo de identificador que se aplica a lo que representa la clase. 0 = La propia base de datos >0 = Identificadores de objeto para objetos de usuario <0 = identificadores de los objetos de sistema |
| minor_id | int | Id. secundario del elemento en que existe el permiso, interpretado según la clase. A menudo, el minor_id valor es cero, porque no hay ninguna subcategoría disponible para la clase de objeto . De lo contrario, es el identificador de columna de una tabla. |
| grantee_principal_id | int | Id. de la entidad de seguridad de base de datos a la que se conceden los permisos. |
| grantor_principal_id | int | Id. de la entidad de seguridad de base de datos de la persona que concede estos permisos. |
| type | char(4) | Tipo de permiso de base de datos. Para obtener una lista de los tipos de permisos, vea la tabla siguiente. |
| permission_name | nvarchar(128) | Nombre de permiso. |
| state | char(1) | Estado de permiso: D = Denegar R = Revocar G = Conceder W = Conceder con opción de conceder |
| state_desc | nvarchar(60) | Descripción del estado del permiso: DENY REVOKE GRANT GRANT_WITH_GRANT_OPTION |
Permisos de base de datos
Los siguientes tipos de permisos son posibles.
| Tipo de permiso | Nombre del permiso | Se aplica a un elemento protegible |
|---|---|---|
| AADS | ALTERAR CUALQUIER SESIÓN DE EVENTO DE BASE DE DATOS | DATABASE |
| AAMK | ALTERAR CUALQUIER MÁSCARA | DATABASE |
| AEDS | MODIFICAR CUALQUIER FUENTE DE DATOS EXTERNA | DATABASE |
| AEFF | ALTERAR CUALQUIER FORMATO DE ARCHIVO EXTERNO | DATABASE |
| AL | ALTER | ROL DE APLICACIÓN, ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, USER, XML SCHEMA COLLECTION |
| ALAK | ALTERAR CUALQUIER CLAVE ASIMÉTRICA | DATABASE |
| ALAR | ALTERAR CUALQUIER ROL DE APLICACIÓN | DATABASE |
| ALAS | MODIFICAR CUALQUIER ENSAMBLAJE | DATABASE |
| ALCF | ALTERAR CUALQUIER CERTIFICADO | DATABASE |
| ALDS | ALTERAR CUALQUIER ESPACIO DE DATOS | DATABASE |
| ALED | ALTERAR CUALQUIER NOTIFICACIÓN DE EVENTO DE BASE DE DATOS | DATABASE |
| ALFT | MODIFICAR CUALQUIER CATÁLOGO DE TEXTO COMPLETO | DATABASE |
| ALMT | ALTERAR CUALQUIER TIPO DE MENSAJE | DATABASE |
| ALRL | ALTERAR CUALQUIER ROL | DATABASE |
| ALRT | ALTERAR CUALQUIER RUTA | DATABASE |
| ALSB | ALTERAR CUALQUIER VINCULACIÓN DE SERVICIO REMOTO | DATABASE |
| ALSC | ALTERAR CUALQUIER CONTRATO | DATABASE |
| ALSK | ALTERAR CUALQUIER CLAVE SIMÉTRICA | DATABASE |
| ALSM | ALTER CUALQUIER ESQUEMA | DATABASE |
| ALSV | Modificar cualquier servicio | DATABASE |
| ALTG | ALTERAR CUALQUIER DISPARADOR DDL DE BASE DE DATOS | DATABASE |
| ALUS | ALTERAR CUALQUIER USUARIO | DATABASE |
| AUTH | AUTHENTICATE | DATABASE |
| BADB | RESPALDAR BASE DE DATOS | DATABASE |
| BALO | REGISTRO DE COPIA DE SEGURIDAD | DATABASE |
| CL | CONTROL | ROL DE APLICACIÓN, ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, USER, XML SCHEMA COLLECTION |
| CO | CONNECT | DATABASE |
| CORP | REPLICACIÓN DE CONNECT | DATABASE |
| CP | CHECKPOINT | DATABASE |
| CRAG | CREAR AGREGADO (CREATE AGGREGATE) | DATABASE |
| CRAK | CREAR CLAVE ASIMÉTRICA | DATABASE |
| CRAS | CREAR ENSAMBLADOR | DATABASE |
| CRCF | CREAR CERTIFICADO | DATABASE |
| CRDB | CREAR BASE DE DATOS | DATABASE |
| CRDF | CREAR DEFAULT | DATABASE |
| CRED | CREAR BASE DE DATOS NOTIFICACIÓN DE EVENTO DDL | DATABASE |
| CRFN | CREATE FUNCTION | DATABASE |
| CRFT | CREAR CATÁLOGO DE TEXTO COMPLETO | DATABASE |
| CRMT | CREAR TIPO DE MENSAJE | DATABASE |
| CRPR | CREAR PROCEDIMIENTO | DATABASE |
| CRQU | CREATE QUEUE | DATABASE |
| CRRL | CREAR ROL | DATABASE |
| CRRT | CREAR RUTA | DATABASE |
| CRRU | CREAR REGLA | DATABASE |
| CRSB | CREACIÓN DE UN ENLACE DE SERVICIO REMOTO | DATABASE |
| CRSC | CREAR CONTRATO | DATABASE |
| CRSK | CREACIÓN DE UNA CLAVE SIMÉTRICA | DATABASE |
| CRSM | CREAR ESQUEMA | DATABASE |
| CRSN | CREAR SINÓMINO | DATABASE |
| CRSO |
Se aplica a: SQL Server 2012 (11.x) y versiones posteriores. CREAR SECUENCIA |
DATABASE |
| CRSV | CREAR SERVICIO | DATABASE |
| CRTB | CREATE TABLE | DATABASE |
| CRTY | CREAR TIPO | DATABASE |
| CRVW | CREAR VISTA | DATABASE |
| CRXS |
Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. CREAR COLECCIÓN DE ESQUEMA XML |
DATABASE |
| DABO | ADMINISTRACIÓN DE OPERACIONES MASIVAS DE BASE DE DATOS | DATABASE |
| DL | DELETE | BASE DE DATOS, OBJETO, ESQUEMA |
| EAES | EJECUTAR CUALQUIER SCRIPT EXTERNO | DATABASE |
| EX | EXECUTE | ENSAMBLADOR, BASE DE DATOS, OBJETO, ESQUEMA, TIPO, COLECCIÓN DE ESQUEMAS XML |
| IM | IMPERSONATE | USER |
| IN | INSERT | BASE DE DATOS, OBJETO, ESQUEMA |
| RC | RECEIVE | OBJECT |
| RF | REFERENCES | ENSAMBLADOR, CLAVE ASIMÉTRICA, CERTIFICADO, CONTRATO, BASE DE DATOS, CATÁLOGO DE TEXTO COMPLETO, TIPO DE MENSAJE, OBJETO, ESQUEMA, CLAVE SIMÉTRICA, TIPO, COLECCIÓN DE ESQUEMAS XML |
| SL | SELECT | BASE DE DATOS, OBJETO, ESQUEMA |
| SN | SEND | SERVICE |
| SPLN | SHOWPLAN | DATABASE |
| SUQN | SUSCRÍBETE A LAS NOTIFICACIONES DE CONSULTA | DATABASE |
| TO | TOMAR POSESIÓN | ENSAMBLADOR, CLAVE ASIMÉTRICA, CERTIFICADO, CONTRATO, BASE DE DATOS, CATÁLOGO DE TEXTO COMPLETO, TIPO DE MENSAJE, OBJETO, VINCULACIÓN REMOTA DE SERVICIO, ROL, RUTA, ESQUEMA, SERVICIO, CLAVE SIMÉTRICA, TIPO, COLECCIÓN DE ESQUEMAS XML |
| UP | UPDATE | BASE DE DATOS, OBJETO, ESQUEMA |
| VW | VER DEFINICIÓN | ROL DE APLICACIÓN, ASSEMBLY, ASYMMETRIC KEY, CERTIFICATE, CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJECT, REMOTE SERVICE BINDING, ROLE, ROUTE, SCHEMA, SERVICE, SYMMETRIC KEY, TYPE, USER, XML SCHEMA COLLECTION |
| VWCK | VER LA DEFINICIÓN DE CUALQUIER CLAVE DE CIFRADO PARA COLUMNAS | DATABASE |
| VWCM | VER LA DEFINICIÓN DE CUALQUIER CLAVE MAESTRA DE COLUMNA | DATABASE |
| VWCT | VISUALIZACIÓN DEL SEGUIMIENTO DE CAMBIOS | TABLA, ESQUEMA |
| VWDS | VER EL ESTADO DE LA BASE DE DATOS | DATABASE |
PERMISOS REVOKE y de excepción de columna
En la mayoría de los casos, el comando REVOKE quitará la entrada GRANT o DENY de sys.database_permissions.
Sin embargo, es posible conceder o denegar permisos en un objeto y, a continuación, REVOCAR ese permiso en una columna. Este permiso de excepción de columna se mostrará como REVOKE en sys.database_permissions. Tenga en cuenta el ejemplo siguiente:
GRANT SELECT ON Person.Person TO [Sales];
REVOKE SELECT ON Person.Person(AdditionalContactInfo) FROM [Sales];
Estos permisos se mostrarán en sys.database_permissions como un GRANT (en la tabla) y un REVOKE (en la columna).
Important
REVOKE es diferente de DENY, ya que la entidad de seguridad de Sales puede tener acceso a la columna a través de otros permisos. Si se hubiera denegado permisos en lugar de revocarlos, Sales no podría ver el contenido de la columna porque DENY siempre sustituye a GRANT.
Permissions
Cualquier usuario puede ver sus propios permisos. Para ver los permisos de otros usuarios, se requiere VIEW DEFINITION, ALTER ANY USER o cualquier permiso en un usuario. Para ver los roles definidos por el usuario, se requiere ALTER ANY ROLE o la pertenencia al rol (por ejemplo, public).
La visibilidad de los metadatos en las vistas de catálogo se limita a los elementos protegibles y que son propiedad de un usuario o sobre los que el usuario ha recibido algún permiso. Para obtener más información, consulte Metadata Visibility Configuration.
Examples
A. Enumerar todos los permisos de las entidades de seguridad de base de datos
La consulta siguiente enumera los permisos que se otorgan o deniegan específicamente a las entidades de seguridad de base de datos.
Important
Los permisos de los roles fijos de base de datos no aparecen en sys.database_permissions. Por tanto, es posible que las entidades de seguridad de base de datos tengan permisos adicionales que no aparezcan aquí.
SELECT pr.principal_id
,pr.name
,pr.type_desc
,pr.authentication_type_desc
,pe.state_desc
,pe.permission_name
FROM sys.database_principals AS pr
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id;
B. Enumeración de permisos en objetos de esquema dentro de una base de datos
La consulta siguiente combina sys.database_principals y a sys.objects y sys.schemas para enumerar los permisos concedidossys.database_permissions
SELECT pr.principal_id
,pr.name
,pr.type_desc
,pr.authentication_type_desc
,pe.state_desc
,pe.permission_name
,s.name + '.' + o.name AS ObjectName
FROM sys.database_principals AS pr
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id
INNER JOIN sys.objects AS o ON pe.major_id = o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id;
C. Enumeración de permisos para un objeto específico
Puede usar el ejemplo anterior para consultar permisos específicos de un único objeto de base de datos.
Por ejemplo, considere los siguientes permisos pormenorizados concedidos a un usuario test de base de datos de la base de datos deAdventureWorksDW2025ejemplo :
GRANT SELECT ON dbo.vAssocSeqOrders TO [test];
Busque los permisos granulares asignados a dbo.vAssocSeqOrders:
SELECT pr.principal_id
,pr.name
,pr.type_desc
,pr.authentication_type_desc
,pe.state_desc
,pe.permission_name
,s.name + '.' + o.name AS ObjectName
FROM sys.database_principals AS pr
INNER JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id
INNER JOIN sys.objects AS o ON pe.major_id = o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id
WHERE o.name = 'vAssocSeqOrders'
AND s.name = 'dbo';
Devuelve la salida:
principal_id name type_desc authentication_type_desc state_desc permission_name ObjectName
5 test SQL_USER INSTANCE GRANT SELECT dbo.vAssocSeqOrders
Consulte también
- Securables
- Jerarquía de permisos (motor de base de datos)
- Vistas de catálogo de seguridad (Transact-SQL)
- Vistas de catálogo (Transact-SQL)