Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los 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 FULLTEXT STOPLIST SEARCH PROPERTY LIST DATABASE SCOPED CREDENTIAL EXTERNAL LANGUAGE |
| 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 | ALTERA CUALQUIER DATABASEEVENT SESSION | DATABASE |
| AAMK | ALTERAR CUALQUIER MÁSCARA | DATABASE |
| AEDS | ALTERAR CUALQUIER EXTERNAL DATA SOURCE | DATABASE |
| AEFF | ALTERAR CUALQUIER EXTERNAL FILE FORMAT | DATABASE |
| AL | ALTER | APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, , CONTRACTDATABASE, , FULLTEXT CATALOG, MESSAGE TYPE, OBJETO, REMOTE SERVICE BINDING, , USERSERVICESCHEMASYMMETRIC KEYROLEROUTECERTIFICATEXML SCHEMA COLLECTION |
| ALAK | ALTERAR CUALQUIER ASYMMETRIC KEY | DATABASE |
| ALAR | ALTERAR CUALQUIER APPLICATION ROLE | DATABASE |
| ALAS | ALTERAR CUALQUIER ASSEMBLY | DATABASE |
| ALCF | ALTERAR CUALQUIER CERTIFICATE | DATABASE |
| ALDS | ALTERAR CUALQUIER ESPACIO DE DATOS | DATABASE |
| ALED | ALTERA CUALQUIER DATABASEEVENT NOTIFICATION | DATABASE |
| ALFT | ALTERAR CUALQUIER FULLTEXT CATALOG | DATABASE |
| ALMT | ALTERAR CUALQUIER MESSAGE TYPE | DATABASE |
| ALRL | ALTERAR CUALQUIER ROLE | DATABASE |
| ALRT | ALTERAR CUALQUIER ROUTE | DATABASE |
| ALSB | ALTERAR CUALQUIER REMOTE SERVICE BINDING | DATABASE |
| ALSC | ALTERAR CUALQUIER CONTRACT | DATABASE |
| ALSK | ALTERAR CUALQUIER SYMMETRIC KEY | DATABASE |
| ALSM | ALTERAR CUALQUIER SCHEMA | DATABASE |
| ALSV | ALTERAR CUALQUIER SERVICE | DATABASE |
| ALTG | ALTERAR CUALQUIER DATABASE DDL TRIGGER | DATABASE |
| ALUS | ALTERAR CUALQUIER USER | DATABASE |
| AUTH | AUTHENTICATE | DATABASE |
| BADB | BACKUP DATABASE | DATABASE |
| BALO | BACKUP LOG | DATABASE |
| CL | CONTROL | APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, , CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJETO, REMOTE SERVICE BINDING, , SYMMETRIC KEYROUTEUSERSCHEMATYPESERVICEROLECERTIFICATEXML SCHEMA COLLECTION |
| CO | CONNECT | DATABASE |
| CORP | REPLICACIÓN DE CONNECT | DATABASE |
| CP | CHECKPOINT | DATABASE |
| CRAG | CREATE AGGREGATE | DATABASE |
| CRAK | CREATE ASYMMETRIC KEY | DATABASE |
| CRAS | CREATE ASSEMBLY | DATABASE |
| CRCF | CREATE CERTIFICATE | DATABASE |
| CRDB | CREATE DATABASE | DATABASE |
| CRDF | CREATE DEFAULT | DATABASE |
| CRED | CREATE DATABASE DDL EVENT NOTIFICATION | DATABASE |
| CRFN | CREATE FUNCTION | DATABASE |
| CRFT | CREATE FULLTEXT CATALOG | DATABASE |
| CRMT | CREATE MESSAGE TYPE | DATABASE |
| CRPR | CREATE PROCEDURE | DATABASE |
| CRQU | CREATE QUEUE | DATABASE |
| CRRL | CREATE ROLE | DATABASE |
| CRRT | CREATE ROUTE | DATABASE |
| CRRU | CREATE RULE | DATABASE |
| CRSB | CREATE REMOTE SERVICE BINDING | DATABASE |
| CRSC | CREATE CONTRACT | DATABASE |
| CRSK | CREATE SYMMETRIC KEY | DATABASE |
| CRSM | CREATE SCHEMA | DATABASE |
| CRSN | CREATE SYNONYM | DATABASE |
| CRSO |
Se aplica a: SQL Server 2012 (11.x) y versiones posteriores. CREATE SEQUENCE |
DATABASE |
| CRSV | CREATE SERVICE | DATABASE |
| CRTB | CREATE TABLE | DATABASE |
| CRTY | CREATE TYPE | DATABASE |
| CRVW | CREATE VIEW | DATABASE |
| CRXS |
Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores. CREATE XML SCHEMA COLLECTION |
DATABASE |
| DABO | ADMINISTRAR DATABASE OPERACIONES A GRANEL | DATABASE |
| DL | DELETE | DATABASE, OBJETO, SCHEMA |
| EAES | EJECUTAR CUALQUIER SCRIPT EXTERNO | DATABASE |
| EX | EXECUTE | ASSEMBLY, DATABASE, OBJETO, SCHEMA, TYPE, XML SCHEMA COLLECTION |
| IM | IMPERSONATE | USER |
| IN | INSERT | DATABASE, OBJETO, SCHEMA |
| RC | RECEIVE | OBJECT |
| RF | REFERENCES | ASSEMBLY, ASYMMETRIC KEY, CONTRACT, , DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, , OBJETO, SCHEMA, SYMMETRIC KEYTYPE, CERTIFICATEXML SCHEMA COLLECTION |
| SL | SELECT | DATABASE, OBJETO, SCHEMA |
| SN | SEND | SERVICE |
| SPLN | SHOWPLAN | DATABASE |
| SUQN | SUSCRÍBETE A LAS NOTIFICACIONES DE CONSULTA | DATABASE |
| TO | TOMAR POSESIÓN | ASSEMBLY, , , , , , , , OBJETO, REMOTE SERVICE BINDING, ROLESERVICESCHEMASYMMETRIC KEYTYPEROUTEMESSAGE TYPEFULLTEXT CATALOGDATABASECONTRACTCERTIFICATEASYMMETRIC KEYXML SCHEMA COLLECTION |
| UP | UPDATE | DATABASE, OBJETO, SCHEMA |
| VW | VIEW DEFINICIÓN | APPLICATION ROLE, ASSEMBLY, ASYMMETRIC KEY, , CONTRACT, DATABASE, FULLTEXT CATALOG, MESSAGE TYPE, OBJETO, REMOTE SERVICE BINDING, , SYMMETRIC KEYROUTEUSERSCHEMATYPESERVICEROLECERTIFICATEXML SCHEMA COLLECTION |
| VWCK | VIEW CUALQUIER COLUMN ENCRYPTION KEY DEFINICIÓN | DATABASE |
| VWCM | VIEW CUALQUIER COLUMN MASTER KEY DEFINICIÓN | DATABASE |
| VWCT | VIEW SEGUIMIENTO DE CAMBIOS | TABLE, SCHEMA |
| VWDS | VIEW DATABASE ESTADO | DATABASE |
REVOKE y permisos de excepción en columnas
En la mayoría de los casos, el REVOKE comando eliminará la GRANT entrada o DENY de sys.database_permissions.
Sin embargo, es posible GRANT o DENY permisos sobre un objeto y luego REVOKE ese permiso sobre una columna. Este permiso de excepción en columna aparecerá 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 aparecerán en sys.database_permissions como uno GRANT (en la tabla) y otro REVOKE (en la columna).
Important
REVOKE es diferente de DENY, ya que el Sales principal puede seguir teniendo acceso a la columna mediante otros permisos. Si hubiéramos negado permisos en lugar de revocarlos, Sales no podríamos ver el contenido de la columna porque DENY siempre se reemplaza GRANTa .
Permissions
Cualquier usuario puede ver sus propios permisos. Para ver permisos para otros usuarios, se requiere VIEW DEFINICIÓN, ALTERAR CUALQUIER USER, o cualquier permiso sobre un usuario. Para ver roles definidos por el usuario, se requiere ALTERAR CUALQUIER ROLE, o pertenecer al rol (como público).
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
WHERE pe.class = 1;
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 pe.class = 1
AND 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)