Permisos (motor de base de datos)

Se aplica a:SQL ServerAzure SQL DatabaseInstancia administrada de Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de SQL Analytics en Microsoft FabricAlmacén en Microsoft FabricBase de datos SQL en Microsoft Fabric

Cada protegible de SQL Server tiene permisos asociados que se pueden conceder a las entidades de seguridad. Los permisos de se administran en el nivel de servidor asignados a los inicios de sesión y roles de servidor, y en el nivel de base de datos asignados a usuarios de base de datos y roles base de datos. El modelo para Azure SQL Database tiene el mismo sistema para los permisos de base de datos, pero los permisos de nivel de servidor no están disponibles. Este artículo contiene una lista completa de los permisos. Para obtener una implementación típica de los permisos, consulte Introducción a los permisos del motor de base de datos.

El número total de permisos para SQL Server 2022 (16.x) es 292. Azure SQL Database expone 292 permisos. La mayoría de los permisos se aplica a todas las plataformas, pero otros no. Por ejemplo, no se puede conceder permisos de nivel de servidor en Azure SQL Database, y algunos permisos solo tienen sentido en Azure SQL Database. Con la nueva versión se van a implementar nuevos permisos gradualmente. SQL Server 2019 (15.x) expone 248 permisos. SQL Server 2017 (14.x) expone 238 permisos. SQL Server 2016 (13.x) expone 230 permisos. SQL Server 2014 (12.x) expone 219 permisos. SQL Server 2012 (11.x) expone 214 permisos. SQL Server 2008 R2 (10.50.x) expone 195 permisos. El artículo sys.fn_builtin_permissions especifica los permisos de las últimas versiones que son nuevos.

En SQL Database en Microsoft Fabric, solo se admiten roles y usuarios de nivel de base de datos. Los inicios de sesión, los roles y la sa cuenta de nivel de servidor no están disponibles. En la base de datos SQL de Microsoft Fabric, el identificador de Entra de Microsoft para los usuarios de la base de datos es el único método de autenticación admitido. Para obtener más información, consulte Autorización en la base de datos SQL en Microsoft Fabric.

Una vez que entienda los permisos necesarios, puede aplicar permisos de nivel de servidor a inicios de sesión o roles de servidor, y permisos de nivel de base de datos a usuarios o roles de base de datos mediante las instrucciones GRANT, REVOKE y DENY. Por ejemplo:

GRANT SELECT ON SCHEMA::HumanResources TO role_HumanResourcesDept;
REVOKE SELECT ON SCHEMA::HumanResources TO role_HumanResourcesDept;

Para obtener sugerencias sobre cómo planear un sistema de permisos, consulte Introducción a los permisos del motor de base de datos.

Convenciones de nomenclatura de permisos

A continuación se describen las convenciones generales que se siguen en la nomenclatura de permisos:

  • CONTROL

    Confiere al receptor del permiso capacidades relacionadas con la propiedad. El receptor del permiso dispone de hecho de todos los permisos definidos para el elemento protegible. Una entidad de seguridad a la que se le haya concedido el permiso CONTROL también puede conceder permisos para el elemento protegible. Como el modelo de seguridad de SQL Server es jerárquico, el permiso CONTROL de un determinado ámbito incluye implícitamente el mismo permiso CONTROL para todos los elementos protegibles que abarca dicho ámbito. Por ejemplo, el permiso CONTROL en una base de datos implica todos los permisos de la base de datos, todos los permisos en todos los ensamblados y todos los esquemas de la misma, así como todos los permisos en los objetos de todos los esquemas que incluye la base de datos.

  • ALTER

    Confiere la posibilidad de cambiar las propiedades, excepto la propiedad, de un elemento protegible determinado. Cuando se concede para un ámbito, ALTER también confiere la posibilidad de modificar, crear o quitar cualquier elemento protegible que esté contenido en ese ámbito. Por ejemplo, el permiso ALTER en un esquema incluye la posibilidad de crear, modificar y quitar objetos del esquema.

  • ALTER ANY <Server Securable>, donde Server Securable puede ser cualquier elemento protegible del servidor.

    Confiere la posibilidad de crear, modificar o quitar instancias individuales del Protegible del servidor. Por ejemplo, ALTER ANY LOGIN concede la capacidad de crear, modificar o quitar cualquier inicio de sesión en la instancia.

  • ALTER ANY <Database Securable>, donde Database Securable puede ser cualquier elemento protegible en el nivel de base de datos.

    Confiere la posibilidad de crear (CREATE), modificar (ALTER) o quitar (DROP) instancias individuales del Protegible de la base de datos. Por ejemplo, ALTER ANY SCHEMA concede la capacidad de crear, modificar o quitar cualquier esquema de la base de datos.

  • ASUMIR LA RESPONSABILIDAD

    Permite al receptor del permiso tomar propiedad del elemento protegible para el que se concede este permiso.

  • IMPERSONATE <Inicio de sesión>

    Permite al receptor suplantar el inicio de sesión.

  • IMPERSONATE <Usuario>

    Permite al receptor suplantar al usuario.

  • CREATE <Server Securable>

    Confiere al receptor la posibilidad de crear el Protegible del servidor.

  • CREATE <Database Securable>

    Confiere al receptor la posibilidad de crear el Protegible de la base de datos.

  • CREATE <Elemento protegible contenido en el esquema>

    Confiere la posibilidad de crear el elemento protegible contenido en el esquema. No obstante, para crear el elemento protegible en un esquema concreto se requiere el permiso ALTER en el esquema.

  • VIEW DEFINICIÓN

    Permite al receptor obtener acceso a los metadatos.

  • REFERENCES

    El permiso REFERENCES es necesario en una tabla para crear una restricción FOREIGN KEY que hace referencia a esa tabla.

    El permiso REFERENCES es necesario en un objeto para crear un FUNCTION o VIEW con la cláusula WITH SCHEMABINDING que hace referencia a dicho objeto.

Gráfico de los permisos de SQL Server

La siguiente imagen muestra los permisos y sus relaciones entre sí. Algunos de los permisos de nivel superior (como CONTROL SERVER) se muestran varias veces. En este artículo, el póster es demasiado pequeño para leerlo. Puede descargar el Póster de permisos del motor de base de datos a tamaño completo en formato PDF.

Captura de pantalla del PDF de permisos del motor de base de datos.

Permisos aplicables a elementos protegibles específicos

En la siguiente tabla se enumeran los principales tipos de permisos y los tipos de elementos protegibles a los que se pueden aplicar.

Permission Se aplica a
ALTER Todas las clases de objetos excepto TYPE.
CONTROL Todas las clases de objetos:

AGGREGATE,
APPLICATION ROLE,
ASSEMBLY,
ASYMMETRIC KEY,
AVAILABILITY GROUP,
CERTIFICATE,
CONTRACT,
CREDENTIALS,
DATABASE,
DATABASE SCOPED CREDENTIAL,
DEFAULT,
ENDPOINT,
FULLTEXT CATALOG,
FULLTEXT STOPLIST,
FUNCTION,
LOGIN,
MESSAGE TYPE,
PROCEDURE,
QUEUE,
REMOTE SERVICE BINDING,
ROLE,
ROUTE,
RULE,
SCHEMA,
SEARCH PROPERTY LIST,
SERVER,
SERVER ROLE,
SERVICE,
SYMMETRIC KEY,
SYNONYM,
TABLE,
TYPE,
USER,
VIEW, y
XML SCHEMA COLLECTION
DELETE Todas las clases de objetos excepto DATABASE SCOPED CONFIGURATION, SERVER y TYPE.
EXECUTE Tipos de CLR, scripts externos, procedimientos (Transact-SQL y CLR), funciones escalares y de agregado (Transact-SQL y CLR) y sinónimos
IMPERSONATE Inicios de sesión y usuarios
INSERT Sinónimos, tablas y columnas, vistas y columnas. El permiso se puede conceder en el nivel de base de datos, en el de esquema o en el de objeto.
RECEIVE Colas de Service Broker
REFERENCES AGGREGATE,
ASSEMBLY,
ASYMMETRIC KEY,
CERTIFICATE,
CONTRACT,
CREDENTIAL(se aplica a SQL Server 2022 (16.x) y versiones posteriores),
DATABASE,
DATABASE SCOPED CREDENTIAL,
FULLTEXT CATALOG,
FULLTEXT STOPLIST,
FUNCTION,
MESSAGE TYPE,
PROCEDURE,
QUEUE,
RULE,
SCHEMA,
SEARCH PROPERTY LIST,
SEQUENCE OBJETO,
SYMMETRIC KEY,
TABLE,
TYPE,
VIEW, y
XML SCHEMA COLLECTION
SELECT Sinónimos, tablas y columnas, vistas y columnas. El permiso se puede conceder en el nivel de base de datos, en el de esquema o en el de objeto.
ASUMIR LA RESPONSABILIDAD Todas las clases de objetos excepto DATABASE SCOPED CONFIGURATION, , LOGINSERVER y USER.
UPDATE Sinónimos, tablas y columnas, vistas y columnas. El permiso se puede conceder en el nivel de base de datos, en el de esquema o en el de objeto.
VIEW SEGUIMIENTO DE CAMBIOS Esquemas y tablas
VIEW DEFINICIÓN Todas las clases de objetos excepto DATABASE SCOPED CONFIGURATION, y SERVER.

Caution

Los permisos predeterminados que se conceden a objetos del sistema en el momento de la instalación se evalúan detenidamente frente a posibles amenazas y no necesitan modificarse como parte de la protección de la instalación de SQL Server. Los cambios a los permisos de los objetos del sistema podrían limitar o interrumpir la funcionalidad y dejar potencialmente a su instalación de SQL Server en un estado no admitido.

Permisos de SQL Server

La tabla siguiente contiene una lista completa de los permisos de SQL Server. Los permisos de Azure SQL Database solo están disponibles para elementos protegibles de base que se admiten. No se pueden conceder permisos de nivel de servidor en Azure SQL Database; sin embargo, en algunos casos los permisos de base de datos están disponibles en su lugar.

Base protegible Permisos granulares del elemento protegible base Código del tipo de permiso Elemento protegible que contiene un elemento protegible base Permiso para el elemento protegible contenedor que implica permiso granular para el elemento protegible base
APPLICATION ROLE ALTER AL DATABASE ALTERAR CUALQUIER APPLICATION ROLE
APPLICATION ROLE CONTROL CL DATABASE CONTROL
APPLICATION ROLE VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
ASSEMBLY ALTER AL DATABASE ALTERAR CUALQUIER ASSEMBLY
ASSEMBLY CONTROL CL DATABASE CONTROL
ASSEMBLY REFERENCES RF DATABASE REFERENCES
ASSEMBLY ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
ASSEMBLY VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
ASYMMETRIC KEY ALTER AL DATABASE ALTERAR CUALQUIER ASYMMETRIC KEY
ASYMMETRIC KEY CONTROL CL DATABASE CONTROL
ASYMMETRIC KEY REFERENCES RF DATABASE REFERENCES
ASYMMETRIC KEY ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
ASYMMETRIC KEY VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
AVAILABILITY GROUP ALTER AL SERVER ALTERAR CUALQUIER AVAILABILITY GROUP
AVAILABILITY GROUP CONTROL CL SERVER SERVIDOR DE CONTROL
AVAILABILITY GROUP ASUMIR LA RESPONSABILIDAD TO SERVER SERVIDOR DE CONTROL
AVAILABILITY GROUP VIEW DEFINICIÓN VW SERVER VIEW CUALQUIER DEFINICIÓN
CERTIFICATE ALTER AL DATABASE ALTERAR CUALQUIER CERTIFICATE
CERTIFICATE CONTROL CL DATABASE CONTROL
CERTIFICATE REFERENCES RF DATABASE REFERENCES
CERTIFICATE ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
CERTIFICATE VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
CONTRACT ALTER AL DATABASE ALTERAR CUALQUIER CONTRACT
CONTRACT CONTROL CL DATABASE CONTROL
CONTRACT REFERENCES RF DATABASE REFERENCES
CONTRACT ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
CONTRACT VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
CREDENTIAL CONTROL CL SERVER SERVIDOR DE CONTROL
CREDENTIAL REFERENCES RF SERVER ALTERAR CUALQUIER CREDENTIAL
DATABASE ADMINISTRACIÓN DATABASE DE OPERACIONES MASIVAS DABO SERVER SERVIDOR DE CONTROL
DATABASE ALTER AL SERVER ALTERAR CUALQUIER DATABASE
DATABASE ALTERAR CUALQUIER APPLICATION ROLE ALAR SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER ASSEMBLY ALAS SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER ASYMMETRIC KEY ALAK SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER CERTIFICATE ALCF SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER COLUMN ENCRYPTION KEY ALCK

Se aplica a: SQL Server (desde SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database.
SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER COLUMN MASTER KEY ALCM

Se aplica a: SQL Server (desde SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database.
SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER CONTRACT ALSC SERVER SERVIDOR DE CONTROL
DATABASE ALTER ANY DATABASE AUDIT ALDA SERVER ALTERAR CUALQUIER SERVER AUDIT
DATABASE ALTER ANY DATABASE DDL TRIGGER ALTG SERVER SERVIDOR DE CONTROL
DATABASE MODIFICAR CUALQUIER DATABASEEVENT NOTIFICATION ALED SERVER ALTERAR CUALQUIER EVENT NOTIFICATION
DATABASE ALTER ANY DATABASEEVENT SESSION AADS SERVER ALTERAR CUALQUIER EVENT SESSION
DATABASE ALTER ANY DATABASEEVENT SESSION ADD EVENT LDAE SERVER ALTER ANY EVENT SESSION ADD EVENT
DATABASE MODIFICAR CUALQUIER DATABASEEVENT SESSION AGREGAR DESTINO LDAT SERVER MODIFICAR CUALQUIER EVENT SESSION DESTINO DE ADICIÓN
DATABASE ALTER ANY DATABASEEVENT SESSION DESHABILITAR DDES SERVER MODIFICAR CUALQUIER EVENT SESSION DESHABILITAR
DATABASE ALTER ANY DATABASEEVENT SESSION DROP EVENT LDDE SERVER ALTER ANY EVENT SESSION DROP EVENT
DATABASE MODIFICAR CUALQUIER DATABASEEVENT SESSION DESTINO DE DROP LDDT SERVER ALTER ANY EVENT SESSION DROP TARGET
DATABASE ALTER ANY DATABASEEVENT SESSION HABILITAR EDES SERVER MODIFICAR CUALQUIER EVENT SESSION HABILITAR
DATABASE MODIFICAR CUALQUIER OPCIÓN DATABASEEVENT SESSION LDSO SERVER Modificar cualquier opción de EVENT SESSION
DATABASE ALTERAR CUALQUIER DATABASE SCOPED CONFIGURATION ALDC

Se aplica a: SQL Server (desde SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database.
SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER ESPACIO DE DATOS ALDS SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER EXTERNAL DATA SOURCE AEDS SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER EXTERNAL FILE FORMAT AEFF SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER TRABAJO EXTERNO AESJ SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER EXTERNAL LANGUAGE ALLA SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER EXTERNAL LIBRARY ALEL SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER FLUJO EXTERNO AEST SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER FULLTEXT CATALOG ALFT SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER MÁSCARA AAMK

Se aplica a: SQL Server (desde SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database.
SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER MESSAGE TYPE ALMT SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER REMOTE SERVICE BINDING ALSB SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER ROLE ALRL SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER ROUTE ALRT SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER SCHEMA ALSM SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER SECURITY POLICY ALSP

Se aplica a: SQL Server (desde SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database.
SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER SENSITIVITY CLASSIFICATION AASC
Se aplica a: SQL Server (desde SQL Server 2019 (15.x) hasta la versión actual), Azure SQL Database.
SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER SERVICE ALSV SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER SYMMETRIC KEY ALSK SERVER SERVIDOR DE CONTROL
DATABASE ALTERAR CUALQUIER USER ALUS SERVER SERVIDOR DE CONTROL
DATABASE ALTER LEDGER ALR SERVER CONTROL
DATABASE ALTERAR CONFIGURACIÓN DEL LIBRO MAYOR ALC SERVER SERVIDOR DE CONTROL
DATABASE AUTHENTICATE AUTH SERVER AUTENTICAR SERVIDOR
DATABASE BACKUP DATABASE BADB SERVER SERVIDOR DE CONTROL
DATABASE BACKUP LOG BALO SERVER SERVIDOR DE CONTROL
DATABASE CHECKPOINT CP SERVER SERVIDOR DE CONTROL
DATABASE CONNECT CO SERVER SERVIDOR DE CONTROL
DATABASE Replicación de Connect CORP SERVER SERVIDOR DE CONTROL
DATABASE CONTROL CL SERVER SERVIDOR DE CONTROL
DATABASE CREATE AGGREGATE CRAG SERVER SERVIDOR DE CONTROL
DATABASE CREA CUALQUIER DATABASEEVENT SESSION CRDS SERVER CREA CUALQUIER EVENT SESSION
DATABASE CREATE ASSEMBLY CRAS SERVER SERVIDOR DE CONTROL
DATABASE CREATE ASYMMETRIC KEY CRAK SERVER SERVIDOR DE CONTROL
DATABASE CREATE CERTIFICATE CRCF SERVER SERVIDOR DE CONTROL
DATABASE CREATE CONTRACT CRSC SERVER SERVIDOR DE CONTROL
DATABASE CREATE DATABASE CRDB SERVER CREA CUALQUIER DATABASE
DATABASE CREATE DATABASE DDL EVENT NOTIFICATION CRED SERVER CREATE DDL EVENT NOTIFICATION
DATABASE CREATE DEFAULT CRDF SERVER SERVIDOR DE CONTROL
DATABASE CREATE EXTERNAL LANGUAGE CRLA SERVER SERVIDOR DE CONTROL
DATABASE CREATE EXTERNAL LIBRARY CREL SERVER SERVIDOR DE CONTROL
DATABASE CREATE FULLTEXT CATALOG CRFT SERVER SERVIDOR DE CONTROL
DATABASE CREATE FUNCTION CRFN SERVER SERVIDOR DE CONTROL
DATABASE CREATE MESSAGE TYPE CRMT SERVER SERVIDOR DE CONTROL
DATABASE CREATE PROCEDURE CRPR SERVER SERVIDOR DE CONTROL
DATABASE CREATE QUEUE CRQU SERVER SERVIDOR DE CONTROL
DATABASE CREATE REMOTE SERVICE BINDING CRSB SERVER SERVIDOR DE CONTROL
DATABASE CREATE ROLE CRRL SERVER SERVIDOR DE CONTROL
DATABASE CREATE ROUTE CRRT SERVER SERVIDOR DE CONTROL
DATABASE CREATE RULE CRRU SERVER SERVIDOR DE CONTROL
DATABASE CREATE SCHEMA CRSM SERVER SERVIDOR DE CONTROL
DATABASE CREATE SERVICE CRSV SERVER SERVIDOR DE CONTROL
DATABASE CREATE SYMMETRIC KEY CRSK SERVER SERVIDOR DE CONTROL
DATABASE CREATE SYNONYM CRSN SERVER SERVIDOR DE CONTROL
DATABASE CREATE TABLE CRTB SERVER SERVIDOR DE CONTROL
DATABASE CREATE TYPE CRTY SERVER SERVIDOR DE CONTROL
DATABASE CREATE USER CUSR SERVER SERVIDOR DE CONTROL
DATABASE CREATE VIEW CRVW SERVER SERVIDOR DE CONTROL
DATABASE CREATE XML SCHEMA COLLECTION CRXS SERVER SERVIDOR DE CONTROL
DATABASE DELETE DL SERVER SERVIDOR DE CONTROL
DATABASE Soltar cualquier DATABASEEVENT SESSION DRDS SERVER SOLTAR CUALQUIERA EVENT SESSION
DATABASE Habilitar Ledger EL SERVER CONTROL
DATABASE EXECUTE EX SERVER SERVIDOR DE CONTROL
DATABASE EJECUTAR CUALQUIER EXTERNO ENDPOINT EAEE SERVER SERVIDOR DE CONTROL
DATABASE EJECUTAR CUALQUIER SCRIPT EXTERNO EAES

Se aplica a: SQL Server (desde SQL Server 2016 (13.x) hasta la versión actual).
SERVER SERVIDOR DE CONTROL
DATABASE INSERT IN SERVER SERVIDOR DE CONTROL
DATABASE FINALIZAR DATABASE CONEXIÓN KIDC

Solo se aplica a Azure SQL Database. Use ALTER ANY CONNECTION en SQL Server.
SERVER ALTERAR CUALQUIER CONEXIÓN
DATABASE REFERENCES RF SERVER SERVIDOR DE CONTROL
DATABASE SELECT SL SERVER SERVIDOR DE CONTROL
DATABASE SHOWPLAN SPLN SERVER ALTER TRACE
DATABASE SUSCRÍBETE A LAS NOTIFICACIONES DE CONSULTA SUQN SERVER SERVIDOR DE CONTROL
DATABASE ASUMIR LA RESPONSABILIDAD TO SERVER SERVIDOR DE CONTROL
DATABASE UNMASK UMSK

Se aplica a: SQL Server (desde SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database.
SERVER SERVIDOR DE CONTROL
DATABASE UPDATE UP SERVER SERVIDOR DE CONTROL
DATABASE VIEW CUALQUIER COLUMN ENCRYPTION KEY DEFINICIÓN VWCK

Se aplica a: SQL Server (desde SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database.
SERVER VIEW ESTADO DEL SERVIDOR
DATABASE VIEW CUALQUIER COLUMN MASTER KEY DEFINICIÓN VWCM

Se aplica a: SQL Server (desde SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database.
SERVER VIEW ESTADO DEL SERVIDOR
DATABASE VIEW CUALQUIER SENSITIVITY CLASSIFICATION VASC SERVER SERVIDOR DE CONTROL
DATABASE VIEW DEFINICIÓN PROTEGIDA CRIPTOGRÁFICAMENTE VCD SERVER VIEW CUALQUIER DEFINICIÓN PROTEGIDA CRIPTOGRÁFICAMENTE
DATABASE VIEW DATABASE ESTADO DE RENDIMIENTO VDP SERVER VIEW ESTADO DE RENDIMIENTO DEL SERVIDOR
DATABASE VIEW DATABASE AUDITORÍA DE SEGURIDAD VDSA SERVER SERVIDOR DE CONTROL
DATABASE VIEW DATABASE ESTADO DE SEGURIDAD VDS SERVER VIEW ESTADO DE SEGURIDAD DEL SERVIDOR
DATABASE VIEW DATABASE ESTADO VWDS SERVER VIEW ESTADO DEL SERVIDOR
DATABASE VIEW DEFINICIÓN VW SERVER VIEW CUALQUIER DEFINICIÓN
DATABASE VIEW CONTENIDO DEL LIBRO DE CONTABILIDAD VLC SERVER CONTROL
DATABASE VIEW DEFINICIÓN DE SEGURIDAD VWS SERVER VIEW CUALQUIER DEFINICIÓN DE SEGURIDAD
DATABASE VIEW DEFINICIÓN DE RENDIMIENTO VWP SERVER VIEW CUALQUIER DEFINICIÓN DE RENDIMIENTO
DATABASE SCOPED CREDENTIAL ALTER AL DATABASE CONTROL
DATABASE SCOPED CREDENTIAL CONTROL CL DATABASE CONTROL
DATABASE SCOPED CREDENTIAL REFERENCES RF DATABASE REFERENCES
DATABASE SCOPED CREDENTIAL ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
DATABASE SCOPED CREDENTIAL VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
ENDPOINT ALTER AL SERVER ALTERAR CUALQUIER ENDPOINT
ENDPOINT CONNECT CO SERVER SERVIDOR DE CONTROL
ENDPOINT CONTROL CL SERVER SERVIDOR DE CONTROL
ENDPOINT ASUMIR LA RESPONSABILIDAD TO SERVER SERVIDOR DE CONTROL
ENDPOINT VIEW DEFINICIÓN VW SERVER VIEW CUALQUIER DEFINICIÓN
FULLTEXT CATALOG ALTER AL DATABASE ALTERAR CUALQUIER FULLTEXT CATALOG
FULLTEXT CATALOG CONTROL CL DATABASE CONTROL
FULLTEXT CATALOG REFERENCES RF DATABASE REFERENCES
FULLTEXT CATALOG ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
FULLTEXT CATALOG VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
FULLTEXT STOPLIST ALTER AL DATABASE ALTERAR CUALQUIER FULLTEXT CATALOG
FULLTEXT STOPLIST CONTROL CL DATABASE CONTROL
FULLTEXT STOPLIST REFERENCES RF DATABASE REFERENCES
FULLTEXT STOPLIST ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
FULLTEXT STOPLIST VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
LOGIN ALTER AL SERVER ALTERAR CUALQUIER LOGIN
LOGIN CONTROL CL SERVER SERVIDOR DE CONTROL
LOGIN IMPERSONATE IM SERVER SERVIDOR DE CONTROL
LOGIN VIEW DEFINICIÓN VW SERVER VIEW CUALQUIER DEFINICIÓN
MESSAGE TYPE ALTER AL DATABASE ALTERAR CUALQUIER MESSAGE TYPE
MESSAGE TYPE CONTROL CL DATABASE CONTROL
MESSAGE TYPE REFERENCES RF DATABASE REFERENCES
MESSAGE TYPE ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
MESSAGE TYPE VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
OBJECT ALTER AL SCHEMA ALTER
OBJECT CONTROL CL SCHEMA CONTROL
OBJECT DELETE DL SCHEMA DELETE
OBJECT EXECUTE EX SCHEMA EXECUTE
OBJECT INSERT IN SCHEMA INSERT
OBJECT RECEIVE RC SCHEMA CONTROL
OBJECT REFERENCES RF SCHEMA REFERENCES
OBJECT SELECT SL SCHEMA SELECT
OBJECT ASUMIR LA RESPONSABILIDAD TO SCHEMA CONTROL
OBJECT UNMASK UMSK SCHEMA UNMASK
OBJECT UPDATE UP SCHEMA UPDATE
OBJECT VIEW SEGUIMIENTO DE CAMBIOS VWCT SCHEMA VIEW SEGUIMIENTO DE CAMBIOS
OBJECT VIEW DEFINICIÓN VW SCHEMA VIEW DEFINICIÓN
REMOTE SERVICE BINDING ALTER AL DATABASE ALTERAR CUALQUIER REMOTE SERVICE BINDING
REMOTE SERVICE BINDING CONTROL CL DATABASE CONTROL
REMOTE SERVICE BINDING ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
REMOTE SERVICE BINDING VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
ROLE ALTER AL DATABASE ALTERAR CUALQUIER ROLE
ROLE CONTROL CL DATABASE CONTROL
ROLE ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
ROLE VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
ROUTE ALTER AL DATABASE ALTERAR CUALQUIER ROUTE
ROUTE CONTROL CL DATABASE CONTROL
ROUTE ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
ROUTE VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
SCHEMA ALTER AL DATABASE ALTERAR CUALQUIER SCHEMA
SCHEMA CONTROL CL DATABASE CONTROL
SCHEMA CREATE SEQUENCE CRSO DATABASE CONTROL
SCHEMA DELETE DL DATABASE DELETE
SCHEMA EXECUTE EX DATABASE EXECUTE
SCHEMA INSERT IN DATABASE INSERT
SCHEMA REFERENCES RF DATABASE REFERENCES
SCHEMA SELECT SL DATABASE SELECT
SCHEMA ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
SCHEMA UNMASK UMSK DATABASE UNMASK
SCHEMA UPDATE UP DATABASE UPDATE
SCHEMA VIEW SEGUIMIENTO DE CAMBIOS VWCT DATABASE VIEW SEGUIMIENTO DE CAMBIOS
SCHEMA VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
SEARCH PROPERTY LIST ALTER AL SERVER ALTERAR CUALQUIER FULLTEXT CATALOG
SEARCH PROPERTY LIST CONTROL CL SERVER CONTROL
SEARCH PROPERTY LIST REFERENCES RF SERVER REFERENCES
SEARCH PROPERTY LIST ASUMIR LA RESPONSABILIDAD TO SERVER CONTROL
SEARCH PROPERTY LIST VIEW DEFINICIÓN VW SERVER VIEW DEFINICIÓN
SERVER ADMINISTRACIÓN DE OPERACIONES MASIVAS ADBO No aplicable No aplicable
SERVER ALTERAR CUALQUIER AVAILABILITY GROUP ALAG No aplicable No aplicable
SERVER ALTERAR CUALQUIER CONEXIÓN ALCO No aplicable No aplicable
SERVER ALTERAR CUALQUIER CREDENTIAL ALCD No aplicable No aplicable
SERVER ALTERAR CUALQUIER DATABASE ALDB No aplicable No aplicable
SERVER ALTERAR CUALQUIER ENDPOINT ALHE No aplicable No aplicable
SERVER ALTERAR CUALQUIER EVENT NOTIFICATION ALES No aplicable No aplicable
SERVER ALTERAR CUALQUIER EVENT SESSION AAES No aplicable No aplicable
SERVER ALTER ANY EVENT SESSION ADD EVENT LSAE No aplicable No aplicable
SERVER MODIFICAR CUALQUIER EVENT SESSION DESTINO DE ADICIÓN LSAT No aplicable No aplicable
SERVER MODIFICAR CUALQUIER EVENT SESSION DESHABILITAR DES No aplicable No aplicable
SERVER ALTER ANY EVENT SESSION DROP EVENT LSDE No aplicable No aplicable
SERVER ALTER ANY EVENT SESSION DROP TARGET LSDT No aplicable No aplicable
SERVER MODIFICAR CUALQUIER EVENT SESSION HABILITAR EES No aplicable No aplicable
SERVER Modificar cualquier opción de EVENT SESSION LESO No aplicable No aplicable
SERVER ALTERAR CUALQUIER SERVIDOR VINCULADO ALLS No aplicable No aplicable
SERVER ALTERAR CUALQUIER LOGIN ALLG No aplicable No aplicable
SERVER ALTERAR CUALQUIER SERVER AUDIT ALAA No aplicable No aplicable
SERVER ALTERAR CUALQUIER SERVER ROLE ALSR No aplicable No aplicable
SERVER MODIFICAR RECURSOS ALRS No aplicable No aplicable
SERVER ALTERAR ESTADO DEL SERVIDOR ALSS No aplicable No aplicable
SERVER MODIFICAR CONFIGURACIONES ALST No aplicable No aplicable
SERVER ALTER TRACE ALTR No aplicable No aplicable
SERVER AUTENTICAR SERVIDOR AUTH No aplicable No aplicable
SERVER CONECTAR CUALQUIERA DATABASE CADB No aplicable No aplicable
SERVER Conectar a SQL COSQ No aplicable No aplicable
SERVER SERVIDOR DE CONTROL CL No aplicable No aplicable
SERVER CREA CUALQUIER DATABASE CRDB No aplicable No aplicable
SERVER CREATE AVAILABILITY GROUP CRAC No aplicable No aplicable
SERVER CREATE DDL EVENT NOTIFICATION CRDE No aplicable No aplicable
SERVER CREATE ENDPOINT CRHE No aplicable No aplicable
SERVER CREATE SERVER ROLE CRSR No aplicable No aplicable
SERVER CREAR TRAZA EVENT NOTIFICATION CRTE No aplicable No aplicable
SERVER ACCESO EXTERNO ASSEMBLY XA No aplicable No aplicable
SERVER SUPLANTAR A CUALQUIERA LOGIN IAL No aplicable No aplicable
SERVER SELECCIONAR TODOS LOS USER ELEMENTOS PROTEGIBLES SUS No aplicable No aplicable
SERVER SHUTDOWN SHDN No aplicable No aplicable
SERVER NO SEGURO ASSEMBLY XU No aplicable No aplicable
SERVER VIEW CUALQUIER DATABASE VWDB No aplicable No aplicable
SERVER VIEW CUALQUIER DEFINICIÓN VWAD No aplicable No aplicable
SERVER VIEW ESTADO DEL SERVIDOR VWSS No aplicable No aplicable
SERVER ROLE ALTER AL SERVER ALTERAR CUALQUIER SERVER ROLE
SERVER ROLE CONTROL CL SERVER SERVIDOR DE CONTROL
SERVER ROLE ASUMIR LA RESPONSABILIDAD TO SERVER SERVIDOR DE CONTROL
SERVER ROLE VIEW DEFINICIÓN VW SERVER VIEW CUALQUIER DEFINICIÓN
SERVICE ALTER AL DATABASE ALTERAR CUALQUIER SERVICE
SERVICE CONTROL CL DATABASE CONTROL
SERVICE SEND SN DATABASE CONTROL
SERVICE ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
SERVICE VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
SYMMETRIC KEY ALTER AL DATABASE ALTERAR CUALQUIER SYMMETRIC KEY
SYMMETRIC KEY CONTROL CL DATABASE CONTROL
SYMMETRIC KEY REFERENCES RF DATABASE REFERENCES
SYMMETRIC KEY ASUMIR LA RESPONSABILIDAD TO DATABASE CONTROL
SYMMETRIC KEY VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
TYPE CONTROL CL SCHEMA CONTROL
TYPE EXECUTE EX SCHEMA EXECUTE
TYPE REFERENCES RF SCHEMA REFERENCES
TYPE ASUMIR LA RESPONSABILIDAD TO SCHEMA CONTROL
TYPE VIEW DEFINICIÓN VW SCHEMA VIEW DEFINICIÓN
USER ALTER AL DATABASE ALTERAR CUALQUIER USER
USER CONTROL CL DATABASE CONTROL
USER IMPERSONATE IM DATABASE CONTROL
USER VIEW DEFINICIÓN VW DATABASE VIEW DEFINICIÓN
XML SCHEMA COLLECTION ALTER AL SCHEMA ALTER
XML SCHEMA COLLECTION CONTROL CL SCHEMA CONTROL
XML SCHEMA COLLECTION EXECUTE EX SCHEMA EXECUTE
XML SCHEMA COLLECTION REFERENCES RF SCHEMA REFERENCES
XML SCHEMA COLLECTION ASUMIR LA RESPONSABILIDAD TO SCHEMA CONTROL
XML SCHEMA COLLECTION VIEW DEFINICIÓN VW SCHEMA VIEW DEFINICIÓN

Nuevos permisos granulares agregados a SQL Server 2022

Los permisos siguientes se agregan a SQL Server 2022:

  • Se han agregado 10 nuevos permisos para permitir el acceso a los metadatos del sistema.

  • Se han agregado 18 nuevos permisos para eventos extendidos.

  • Se han agregado 9 nuevos permisos con respecto a los objetos relacionados con la seguridad.

  • Se han agregado 4 permisos para el libro de contabilidad.

  • 3 permisos adicionales de base de datos.

Para obtener más información, consulte Nuevos permisos granulares para SQL Server 2022 y Azure SQL para mejorar la adhesión a PoLP.

Acceso a los permisos de metadatos del sistema

Nivel de servidor:

  • VIEW CUALQUIER DEFINICIÓN DE SEGURIDAD
  • VIEW CUALQUIER DEFINICIÓN DE RENDIMIENTO
  • VIEW ESTADO DE SEGURIDAD DEL SERVIDOR
  • VIEW ESTADO DE RENDIMIENTO DEL SERVIDOR
  • VIEW CUALQUIER DEFINICIÓN PROTEGIDA CRIPTOGRÁFICAMENTE

Nivel de base de datos:

  • VIEW DATABASE ESTADO DE SEGURIDAD
  • VIEW DATABASE ESTADO DE RENDIMIENTO
  • VIEW DEFINICIÓN DE SEGURIDAD
  • VIEW DEFINICIÓN DE RENDIMIENTO
  • VIEW DEFINICIÓN PROTEGIDA CRIPTOGRÁFICAMENTE

Sesiones de eventos extendidos

Nivel de servidor:

  • CREA CUALQUIER EVENT SESSION
  • SOLTAR CUALQUIERA EVENT SESSION
  • Modificar cualquier opción de EVENT SESSION
  • ALTER ANY EVENT SESSION ADD EVENT
  • ALTER ANY EVENT SESSION DROP EVENT
  • MODIFICAR CUALQUIER EVENT SESSION HABILITAR
  • MODIFICAR CUALQUIER EVENT SESSION DESHABILITAR
  • MODIFICAR CUALQUIER EVENT SESSION DESTINO DE ADICIÓN
  • ALTER ANY EVENT SESSION DROP TARGET

Todos estos permisos están bajo el mismo permiso primario: ALTER ANY EVENT SESSION

Nivel de base de datos:

  • CREA CUALQUIER DATABASEEVENT SESSION
  • Soltar cualquier DATABASEEVENT SESSION
  • MODIFICAR CUALQUIER OPCIÓN DATABASEEVENT SESSION
  • ALTER ANY DATABASEEVENT SESSION ADD EVENT
  • ALTER ANY DATABASEEVENT SESSION DROP EVENT
  • ALTER ANY DATABASEEVENT SESSION HABILITAR
  • ALTER ANY DATABASEEVENT SESSION DESHABILITAR
  • MODIFICAR CUALQUIER DATABASEEVENT SESSION AGREGAR DESTINO
  • MODIFICAR CUALQUIER DATABASEEVENT SESSION DESTINO DE DROP

Todos estos permisos están bajo el mismo permiso primario: ALTER ANY DATABASEEVENT SESSION

  • CONTROL (CREDENTIAL)
  • CREATE LOGIN
  • CREATE USER
  • REFERENCIAS (CREDENTIAL)
  • DESENMASCARAR (OBJECTO)
  • DESENMASCARAR (SCHEMA)
  • VIEW CUALQUIER REGISTRO DE ERRORES
  • VIEW AUDITORÍA DE SEGURIDAD DEL SERVIDOR
  • VIEW DATABASE AUDITORÍA DE SEGURIDAD

Permisos de libro de contabilidad

  • ALTER LEDGER
  • ALTERAR CONFIGURACIÓN DEL LIBRO MAYOR
  • Habilitar Ledger
  • VIEW CONTENIDO DEL LIBRO DE CONTABILIDAD

Otros permisos de base de datos

  • ALTERAR CUALQUIER TRABAJO EXTERNO
  • ALTERAR CUALQUIER FLUJO EXTERNO
  • EJECUTAR CUALQUIER EXTERNO ENDPOINT

Resumen del algoritmo de comprobación de permiso

Comprobar los permisos puede ser complejo. El algoritmo de comprobación de permiso incluye la superposición de la pertenencia a grupos y el encadenamiento de propiedad, tanto el permiso explícito como el implícito, y puede ser afectado por los permisos en las clases protegibles y que contienen la entidad protegible. El proceso general del algoritmo es reunir todos los permisos pertinentes. Si no se encuentra ningún bloqueo DENY , el algoritmo busca un GRANT que proporcione acceso suficiente. El algoritmo contiene tres elementos esenciales, el contexto de seguridad, el espacio del permisoy el permiso necesario.

Note

No se pueden conceder, denegar o revocar permisos a sa, dboel propietario de la entidad, information_schema, syso usted mismo.

  • Contexto de seguridad

    Es el grupo de entidades de seguridad que aportan los permisos para la comprobación de acceso. Estos son permisos relacionados con el inicio de sesión o usuario actual, a menos que el contexto de seguridad se haya cambiado a otro inicio de sesión o usuario mediante la EXECUTE AS instrucción . El contexto de seguridad incluye las entidades de seguridad siguientes:

    • Inicio de sesión

    • El usuario

    • Pertenecientes al rol

    • Pertenecientes al grupo Windows

    • Si se utiliza la firma de módulo, cualquier cuenta de inicio de sesión o de usuario da cuenta del certificado utilizado para firmar el módulo que el usuario está ejecutando actualmente, así como de los pertenecientes al rol asociados de ese entidad de seguridad.

  • Área de permisos

    Es la entidad protegible y todas las clases protegibles que contiene la entidad protegible. Por ejemplo, una tabla (una entidad protegible) está contenida en la clase de esquema protegible y en la clase de base de datos protegible. El acceso puede verse afectado por permisos de nivel de tabla, esquema, base de datos y servidor. Para obtener más información, vea Jerarquía de permisos (motor de base de datos).

  • Permiso necesario

    El tipo de permiso que se necesita. Por ejemplo, INSERT, UPDATE, DELETE, SELECT, EXECUTE, ALTER, CONTROL, etc.

    El acceso puede requerir varios permisos, como en los ejemplos siguientes:

    • Un procedimiento almacenado puede requerir tanto el permiso EXECUTE en el procedimiento almacenado como INSERT permisos en varias tablas a las que hace referencia el procedimiento almacenado.

    • Una vista de administración dinámica puede requerir tanto los permisos VIEW SERVER STATE como SELECT sobre la vista.

Pasos generales del algoritmo

Cuando el algoritmo está determinando si permite el acceso a un elemento protegible, los pasos precisos que utiliza pueden variar, dependiendo de las entidades de seguridad y de los elementos protegibles implicados. Sin embargo, el algoritmo da los siguientes pasos generales:

  1. Omite la comprobación del permiso si el inicio de sesión es un miembro del rol fijo de servidor sysadmin o si el usuario es el usuario de dbo en la base de datos actual.

  2. Permite el acceso si es aplicable el encadenamiento de propiedad y la comprobación de acceso en el objeto anterior de la cadena pasó la comprobación de seguridad.

  3. Agrega las identidades de nivel del servidor, de base de datos y de módulo firmado que se asocian al autor de las llamadas para crear el contexto de seguridad.

  4. Para ese contexto de seguridad, reúne todos los permisos que se conceden o deniegan para el espacio del permiso. El permiso puede indicarse explícitamente como GRANT, GRANT WITH GRANT o DENY; o los permisos pueden ser un permiso implícito o de cobertura GRANT o DENY. Por ejemplo, el permiso CONTROL sobre un esquema implica CONTROL sobre una tabla. Asimismo, CONTROL sobre una tabla implica SELECT. Por consiguiente, si se otorgó CONTROL sobre el esquema, se otorgó SELECT sobre la tabla. Si se denegó CONTROL sobre la tabla, también se denegó SELECT sobre ella.

    Note

    Un GRANT de un permiso a nivel de columna anula un DENY a nivel de objeto. Para obtener más información, vea DENY Permisos de objeto.

  5. Identifique el permiso requerido.

  6. La comprobación del permiso no se realiza correctamente si el permiso requerido es denegado directa o implícitamente a cualquiera de las identidades del contexto de seguridad para los objetos del espacio del permiso.

  7. La comprobación de permisos se supera si no se ha denegado el permiso requerido y el permiso requerido contiene un GRANT o un permiso GRANT CON GRANT, ya sea de forma directa o implícita, para cualquiera de las identidades del contexto de seguridad para cualquier objeto del espacio de permisos.

Consideraciones especiales sobre los permisos de nivel de columna

Los permisos de nivel de columna se conceden con la sintaxis <table_name>(<column _name>). Por ejemplo:

GRANT SELECT ON OBJECT::Customer(CustomerName) TO UserJoe;

Un DENY de la tabla queda reemplazado por un GRANT de una columna. Sin embargo, un elemento posterior DENY de la tabla quitará la columna GRANT.

Examples

En los ejemplos de esta sección se muestra cómo se recupera la información sobre permisos.

A. Devolver la lista completa de los permisos que pueden concederse.

La siguiente instrucción devuelve todos los permisos del motor de base de datos mediante la función fn_builtin_permissions. Para obtener más información, consulte sys.fn_builtin_permissions.

SELECT * FROM fn_builtin_permissions(default);
GO

B. Devolver los permisos de una clase de objetos concreta

En el ejemplo siguiente se usa fn_builtin_permissions para ver todos los permisos que están disponibles para una categoría de elemento protegible. El ejemplo devuelve permisos de ensamblados.

SELECT * FROM fn_builtin_permissions('assembly');
GO

C. Devolver los permisos de un objeto concedidos a la entidad de seguridad que se ejecuta

En el ejemplo siguiente se usa fn_my_permissions para devolver una lista de los permisos efectivos que son retenidos por la entidad de seguridad de la llamada sobre un elemento protegible específico. El ejemplo devuelve los permisos de un objeto denominado Orders55. Para obtener más información, consulte sys.fn_my_permissions.

SELECT * FROM fn_my_permissions('Orders55', 'object');
GO

D. Devolver los permisos aplicables a un objeto especificado

El ejemplo siguiente devuelve los permisos aplicables a un objeto denominado Yttrium. Observa que la función integrada OBJECT_ID se utiliza para recuperar el identificador del objeto Yttrium.

SELECT * FROM sys.database_permissions
    WHERE major_id = OBJECT_ID('Yttrium');
GO