Permisos (motor de base de datos)
Se aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Todos los elementos protegibles de SQL Server tienen permisos asociados que se pueden conceder a una entidad de seguridad. Los permisos de Motor de base de datos 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 de 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 la lista completa de permisos. Para una implementación típica de los permisos, consulte Getting Started with Database Engine Permissions.
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 aplican a todas las plataformas, pero algunas no. Por ejemplo, la mayoría de los permisos de nivel de servidor no se pueden conceder en Azure SQL Database y algunos permisos solo tienen sentido en Azure SQL Database. Los nuevos permisos se introducen gradualmente con nuevas versiones. SQL Server 2019 (15.x) expone 248 permisos. SQL Server 2017 (14.x) expone 238 permisos. SQL Server 2016 (13.x) expuso 230 permisos. SQL Server 2014 (12.x) expuso 219 permisos. SQL Server 2012 (11.x) expuso 214 permisos. SQL Server 2008 R2 (10.50.x) expone 195 permisos. El artículo sys.fn_builtin_permissions especifica qué permisos son nuevos en las versiones recientes.
Una vez que comprenda los permisos, aplique permisos de nivel de servidor a los inicios de sesión o roles de servidor, y permisos de nivel de base de datos a los usuarios o roles de base de datos con 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 consejos acerca de cómo planificar un sistema de permisos, consulte Introducción a los permisos de los motores de bases 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 servidor protegible.
Confiere la posibilidad de crear, modificar o quitar instancias individuales del Protegible del servidor. Por ejemplo, ALTER ANY LOGIN confiere la posibilidad 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 confiere la posibilidad de crear, modificar o quitar cualquier esquema en la base de datos.
TAKE OWNERSHIP
Permite al receptor del permiso tomar propiedad del elemento protegible para el que se concede este permiso.
Inicio de sesión DE IMPERSONATE <>
Permite al receptor suplantar el inicio de sesión.
Usuario IMPERSONATE <>
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 <Schema-contained Securable>
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 DEFINITION
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 de REFERENCES es necesario en un objeto para crear FUNCTION o VIEW con la cláusula
WITH SCHEMABINDING
que hace referencia a ese objeto.
Gráfico de permisos de SQL Server
En la imagen siguiente se muestran 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 de motor de base de datos de tamaño completo en formato PDF.
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.
Permiso | 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, CREDENCIALES 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. |
Ejecute | Tipos 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 deService 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 OBJECT, 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. |
TAKE OWNERSHIP | Todas las clases de objetos excepto DATABASE SCOPED CONFIGURATION, LOGIN, SERVER 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 CHANGE TRACKING | Esquemas y tablas |
VIEW DEFINITION | Todas las clases de objetos excepto DATABASE SCOPED CONFIGURATION y SERVER. |
Precaución
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 deAzure SQL Database solo están disponibles para elementos protegibles de base que se admiten. Los permisos de nivel de servidor no se pueden conceder en Azure SQL Database, pero en algunos casos los permisos de base de datos están disponibles en su lugar.
Elemento protegible base | 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 | ALTER ANY APPLICATION ROLE |
APPLICATION ROLE | CONTROL | CL | DATABASE | CONTROL |
APPLICATION ROLE | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
ASSEMBLY | ALTER | AL | DATABASE | ALTER ANY ASSEMBLY |
ASSEMBLY | CONTROL | CL | DATABASE | CONTROL |
ASSEMBLY | REFERENCES | RF | DATABASE | REFERENCES |
ASSEMBLY | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
ASSEMBLY | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
ASYMMETRIC KEY | ALTER | AL | DATABASE | ALTER ANY ASYMMETRIC KEY |
ASYMMETRIC KEY | CONTROL | CL | DATABASE | CONTROL |
ASYMMETRIC KEY | REFERENCES | RF | DATABASE | REFERENCES |
ASYMMETRIC KEY | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
ASYMMETRIC KEY | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
AVAILABILITY GROUP | ALTER | AL | SERVER | ALTER ANY AVAILABILITY GROUP |
AVAILABILITY GROUP | CONTROL | CL | SERVER | CONTROL SERVER |
AVAILABILITY GROUP | TAKE OWNERSHIP | TO | SERVER | CONTROL SERVER |
AVAILABILITY GROUP | VIEW DEFINITION | VW | SERVER | VIEW ANY DEFINITION |
CERTIFICADO | ALTER | AL | DATABASE | ALTER ANY CERTIFICATE |
CERTIFICADO | CONTROL | CL | DATABASE | CONTROL |
CERTIFICADO | REFERENCES | RF | DATABASE | REFERENCES |
CERTIFICADO | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
CERTIFICADO | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
CONTRACT | ALTER | AL | DATABASE | ALTER ANY CONTRACT |
CONTRACT | CONTROL | CL | DATABASE | CONTROL |
CONTRACT | REFERENCES | RF | DATABASE | REFERENCES |
CONTRACT | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
CONTRACT | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
CREDENTIAL | CONTROL | CL | SERVER | CONTROL SERVER |
CREDENTIAL | REFERENCES | RF | SERVER | ALTER ANY CREDENTIAL |
DATABASE | ADMINISTER DATABASE BULK OPERATIONS | DABO | SERVER | CONTROL SERVER |
DATABASE | ALTER | AL | SERVER | ALTER ANY DATABASE |
DATABASE | ALTER ANY APPLICATION ROLE | ALAR | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY ASSEMBLY | ALAS | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY ASYMMETRIC KEY | ALAK | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY CERTIFICATE | ALCF | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY COLUMN ENCRYPTION KEY | ALCK Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database. |
SERVER | CONTROL SERVER |
DATABASE | ALTER ANY COLUMN MASTER KEY | ALCM Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database. |
SERVER | CONTROL SERVER |
DATABASE | ALTER ANY CONTRACT | ALSC | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY DATABASE AUDIT | ALDA | SERVER | ALTER ANY SERVER AUDIT |
DATABASE | ALTER ANY DATABASE DDL TRIGGER | ALTG | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY DATABASE EVENT NOTIFICATION | ALED | SERVER | ALTER ANY EVENT NOTIFICATION |
DATABASE | ALTER ANY DATABASE EVENT SESSION | AADS | SERVER | ALTER ANY EVENT SESSION |
DATABASE | ALTER ANY DATABASE EVENT SESSION ADD EVENT | LDAE | SERVER | ALTER ANY EVENT SESSION ADD EVENT |
DATABASE | ALTER ANY DATABASE EVENT SESSION ADD TARGET | LDAT | SERVER | ALTER ANY EVENT SESSION ADD TARGET |
DATABASE | ALTER ANY DATABASE EVENT SESSION DISABLE | DDES | SERVER | ALTER ANY EVENT SESSION DISABLE |
DATABASE | ALTER ANY DATABASE EVENT SESSION DROP EVENT | LDDE | SERVER | ALTER ANY EVENT SESSION DROP EVENT |
DATABASE | ALTER ANY DATABASE EVENT SESSION DROP TARGET | LDDT | SERVER | ALTER ANY EVENT SESSION DROP TARGET |
DATABASE | ALTER ANY DATABASE EVENT SESSION ENABLE | EDES | SERVER | ALTER ANY EVENT SESSION ENABLE |
DATABASE | ALTER ANY DATABASE EVENT SESSION OPTION | LDSO | SERVER | ALTER ANY EVENT SESSION OPTION |
DATABASE | ALTER ANY DATABASE SCOPED CONFIGURATION | ALDC Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database. |
SERVER | CONTROL SERVER |
DATABASE | ALTER ANY DATASPACE | ALDS | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY EXTERNAL DATA SOURCE | AEDS | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY EXTERNAL FILE FORMAT | AEFF | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY EXTERNAL JOB | AESJ | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY EXTERNAL LANGUAGE | ALLA | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY EXTERNAL LIBRARY | ALEL | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY EXTERNAL STREAM | AEST | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY FULLTEXT CATALOG | ALFT | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY MASK | AAMK Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database. |
SERVER | CONTROL SERVER |
DATABASE | ALTER ANY MESSAGE TYPE | ALMT | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY REMOTE SERVICE BINDING | ALSB | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY ROLE | ALRL | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY ROUTE | ALRT | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY SCHEMA | ALSM | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY SECURITY POLICY | ALSP Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database. |
SERVER | CONTROL SERVER |
DATABASE | ALTER ANY SENSITIVITY CLASSIFICATION | AASC Se aplica a SQL Server (SQL Server 2019 (15.x) hasta la versión actual), Azure SQL Database. |
SERVER | CONTROL SERVER |
DATABASE | ALTER ANY SERVICE | ALSV | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY SYMMETRIC KEY | ALSK | SERVER | CONTROL SERVER |
DATABASE | ALTER ANY USER | ALUS | SERVER | CONTROL SERVER |
DATABASE | ALTER LEDGER | ALR | SERVER | CONTROL |
DATABASE | ALTER LEDGER CONFIGURATION | ALC | SERVER | CONTROL SERVER |
DATABASE | AUTHENTICATE | AUTH | SERVER | AUTHENTICATE SERVER |
DATABASE | BACKUP DATABASE | BADB | SERVER | CONTROL SERVER |
DATABASE | BACKUP LOG | BALO | SERVER | CONTROL SERVER |
DATABASE | CHECKPOINT | CP | SERVER | CONTROL SERVER |
DATABASE | CONNECT | CO | SERVER | CONTROL SERVER |
DATABASE | CONNECT REPLICATION | CORP | SERVER | CONTROL SERVER |
DATABASE | CONTROL | CL | SERVER | CONTROL SERVER |
DATABASE | CREATE AGGREGATE | CRAG | SERVER | CONTROL SERVER |
DATABASE | CREAR CUALQUIER SESIÓN DE EVENTOS DE BASE DE DATOS | CRDS | SERVER | CREATE ANY EVENT SESSION |
DATABASE | CREATE ASSEMBLY | CRAS | SERVER | CONTROL SERVER |
DATABASE | CREATE ASYMMETRIC KEY | CRAK | SERVER | CONTROL SERVER |
DATABASE | CREATE CERTIFICATE | CRCF | SERVER | CONTROL SERVER |
DATABASE | CREATE CONTRACT | CRSC | SERVER | CONTROL SERVER |
DATABASE | CREATE DATABASE | CRDB | SERVER | CREATE ANY DATABASE |
DATABASE | CREATE DATABASE DDL EVENT NOTIFICATION | CRED | SERVER | CREATE DDL EVENT NOTIFICATION |
DATABASE | CREATE DEFAULT | CRDF | SERVER | CONTROL SERVER |
DATABASE | CREATE EXTERNAL LANGUAGE | CRLA | SERVER | CONTROL SERVER |
DATABASE | CREATE EXTERNAL LIBRARY | CREL | SERVER | CONTROL SERVER |
DATABASE | CREATE FULLTEXT CATALOG | CRFT | SERVER | CONTROL SERVER |
DATABASE | CREATE FUNCTION | CRFN | SERVER | CONTROL SERVER |
DATABASE | CREATE MESSAGE TYPE | CRMT | SERVER | CONTROL SERVER |
DATABASE | CREATE PROCEDURE | CRPR | SERVER | CONTROL SERVER |
DATABASE | CREATE QUEUE | CRQU | SERVER | CONTROL SERVER |
DATABASE | CREATE REMOTE SERVICE BINDING | CRSB | SERVER | CONTROL SERVER |
DATABASE | CREATE ROLE | CRRL | SERVER | CONTROL SERVER |
DATABASE | CREATE ROUTE | CRRT | SERVER | CONTROL SERVER |
DATABASE | CREATE RULE | CRRU | SERVER | CONTROL SERVER |
DATABASE | CREATE SCHEMA | CRSM | SERVER | CONTROL SERVER |
DATABASE | CREATE SERVICE | CRSV | SERVER | CONTROL SERVER |
DATABASE | CREATE SYMMETRIC KEY | CRSK | SERVER | CONTROL SERVER |
DATABASE | CREATE SYNONYM | CRSN | SERVER | CONTROL SERVER |
DATABASE | CREATE TABLE | CRTB | SERVER | CONTROL SERVER |
DATABASE | CREATE TYPE | CRTY | SERVER | CONTROL SERVER |
DATABASE | CREATE USER | CUSR | SERVER | CONTROL SERVER |
DATABASE | CREATE VIEW | CRVW | SERVER | CONTROL SERVER |
DATABASE | CREATE XML SCHEMA COLLECTION | CRXS | SERVER | CONTROL SERVER |
DATABASE | Delete | DL | SERVER | CONTROL SERVER |
DATABASE | QUITAR CUALQUIER SESIÓN DE EVENTOS DE BASE DE DATOS | DRDS | SERVER | DROP ANY EVENT SESSION |
DATABASE | ENABLE LEDGER | EL | SERVER | CONTROL |
DATABASE | Ejecute | EX | SERVER | CONTROL SERVER |
DATABASE | EXECUTE ANY EXTERNAL ENDPOINT | EAEE | SERVER | CONTROL SERVER |
DATABASE | EXECUTE ANY EXTERNAL SCRIPT | EAES Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual). |
SERVER | CONTROL SERVER |
DATABASE | INSERT | IN | SERVER | CONTROL SERVER |
DATABASE | KILL DATABASE CONNECTION | KIDC Solo se aplica a Azure SQL Database. Use ALTER ANY CONNECTION en SQL Server. |
SERVER | ALTER ANY CONNECTION |
DATABASE | REFERENCES | RF | SERVER | CONTROL SERVER |
DATABASE | SELECT | SL | SERVER | CONTROL SERVER |
DATABASE | SHOWPLAN | SPLN | SERVER | ALTER TRACE |
DATABASE | SUBSCRIBE QUERY NOTIFICATIONS | SUQN | SERVER | CONTROL SERVER |
DATABASE | TAKE OWNERSHIP | TO | SERVER | CONTROL SERVER |
DATABASE | UNMASK | UMSK Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database. |
SERVER | CONTROL SERVER |
DATABASE | UPDATE | UP | SERVER | CONTROL SERVER |
DATABASE | VIEW ANY COLUMN ENCRYPTION KEY DEFINITION | VWCK Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database. |
SERVER | VIEW SERVER STATE |
DATABASE | VIEW ANY COLUMN MASTER KEY DEFINITION | VWCM Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), Azure SQL Database. |
SERVER | VIEW SERVER STATE |
DATABASE | VER CUALQUIER CLASIFICACIÓN DE CONFIDENCIALIDAD | VASC | SERVER | CONTROL SERVER |
DATABASE | VER DEFINICIÓN PROTEGIDA CRIPTOGRÁFICAMENTE | VCD | SERVER | VER CUALQUIER DEFINICIÓN PROTEGIDA CRIPTOGRÁFICAMENTE |
DATABASE | VER EL ESTADO DE RENDIMIENTO DE LA BASE DE DATOS | VDP | SERVER | VER ESTADO DE RENDIMIENTO DEL SERVIDOR |
DATABASE | VER LA AUDITORÍA DE SEGURIDAD DE LA BASE DE DATOS | VDSA | SERVER | CONTROL SERVER |
DATABASE | VER ESTADO DE SEGURIDAD DE LA BASE DE DATOS | VDS | SERVER | VER ESTADO DE SEGURIDAD DEL SERVIDOR |
DATABASE | VIEW DATABASE STATE | VWDS | SERVER | VIEW SERVER STATE |
DATABASE | VIEW DEFINITION | VW | SERVER | VIEW ANY DEFINITION |
DATABASE | VIEW LEDGER CONTENT | VLC | SERVER | CONTROL |
DATABASE | VIEW SECURITY DEFINITION | VWS | SERVER | VIEW ANY SECURITY DEFINITION |
DATABASE | VER DEFINICIÓN DE RENDIMIENTO | VWP | SERVER | VER 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 | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
DATABASE SCOPED CREDENTIAL | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
ENDPOINT | ALTER | AL | SERVER | ALTER ANY ENDPOINT |
ENDPOINT | CONNECT | CO | SERVER | CONTROL SERVER |
ENDPOINT | CONTROL | CL | SERVER | CONTROL SERVER |
ENDPOINT | TAKE OWNERSHIP | TO | SERVER | CONTROL SERVER |
ENDPOINT | VIEW DEFINITION | VW | SERVER | VIEW ANY DEFINITION |
FULLTEXT CATALOG | ALTER | AL | DATABASE | ALTER ANY FULLTEXT CATALOG |
FULLTEXT CATALOG | CONTROL | CL | DATABASE | CONTROL |
FULLTEXT CATALOG | REFERENCES | RF | DATABASE | REFERENCES |
FULLTEXT CATALOG | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
FULLTEXT CATALOG | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
FULLTEXT STOPLIST | ALTER | AL | DATABASE | ALTER ANY FULLTEXT CATALOG |
FULLTEXT STOPLIST | CONTROL | CL | DATABASE | CONTROL |
FULLTEXT STOPLIST | REFERENCES | RF | DATABASE | REFERENCES |
FULLTEXT STOPLIST | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
FULLTEXT STOPLIST | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
LOGIN | ALTER | AL | SERVER | ALTER ANY LOGIN |
LOGIN | CONTROL | CL | SERVER | CONTROL SERVER |
LOGIN | IMPERSONATE | IM | SERVER | CONTROL SERVER |
LOGIN | VIEW DEFINITION | VW | SERVER | VIEW ANY DEFINITION |
MESSAGE TYPE | ALTER | AL | DATABASE | ALTER ANY MESSAGE TYPE |
MESSAGE TYPE | CONTROL | CL | DATABASE | CONTROL |
MESSAGE TYPE | REFERENCES | RF | DATABASE | REFERENCES |
MESSAGE TYPE | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
MESSAGE TYPE | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
OBJECT | ALTER | AL | SCHEMA | ALTER |
OBJECT | CONTROL | CL | SCHEMA | CONTROL |
OBJECT | Delete | DL | SCHEMA | Delete |
OBJECT | Ejecute | EX | SCHEMA | Ejecute |
OBJECT | INSERT | IN | SCHEMA | INSERT |
OBJECT | RECEIVE | RC | SCHEMA | CONTROL |
OBJECT | REFERENCES | RF | SCHEMA | REFERENCES |
OBJECT | SELECT | SL | SCHEMA | SELECT |
OBJECT | TAKE OWNERSHIP | TO | SCHEMA | CONTROL |
OBJECT | UNMASK | UMSK | SCHEMA | UNMASK |
OBJECT | UPDATE | UP | SCHEMA | UPDATE |
OBJECT | VIEW CHANGE TRACKING | VWCT | SCHEMA | VIEW CHANGE TRACKING |
OBJECT | VIEW DEFINITION | VW | SCHEMA | VIEW DEFINITION |
REMOTE SERVICE BINDING | ALTER | AL | DATABASE | ALTER ANY REMOTE SERVICE BINDING |
REMOTE SERVICE BINDING | CONTROL | CL | DATABASE | CONTROL |
REMOTE SERVICE BINDING | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
REMOTE SERVICE BINDING | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
ROLE | ALTER | AL | DATABASE | ALTER ANY ROLE |
ROLE | CONTROL | CL | DATABASE | CONTROL |
ROLE | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
ROLE | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
ROUTE | ALTER | AL | DATABASE | ALTER ANY ROUTE |
ROUTE | CONTROL | CL | DATABASE | CONTROL |
ROUTE | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
ROUTE | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
SCHEMA | ALTER | AL | DATABASE | ALTER ANY SCHEMA |
SCHEMA | CONTROL | CL | DATABASE | CONTROL |
SCHEMA | CREATE SEQUENCE | CRSO | DATABASE | CONTROL |
SCHEMA | Delete | DL | DATABASE | Delete |
SCHEMA | Ejecute | EX | DATABASE | Ejecute |
SCHEMA | INSERT | IN | DATABASE | INSERT |
SCHEMA | REFERENCES | RF | DATABASE | REFERENCES |
SCHEMA | SELECT | SL | DATABASE | SELECT |
SCHEMA | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
SCHEMA | UNMASK | UMSK | DATABASE | UNMASK |
SCHEMA | UPDATE | UP | DATABASE | UPDATE |
SCHEMA | VIEW CHANGE TRACKING | VWCT | DATABASE | VIEW CHANGE TRACKING |
SCHEMA | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
SEARCH PROPERTY LIST | ALTER | AL | SERVER | ALTER ANY FULLTEXT CATALOG |
SEARCH PROPERTY LIST | CONTROL | CL | SERVER | CONTROL |
SEARCH PROPERTY LIST | REFERENCES | RF | SERVER | REFERENCES |
SEARCH PROPERTY LIST | TAKE OWNERSHIP | TO | SERVER | CONTROL |
SEARCH PROPERTY LIST | VIEW DEFINITION | VW | SERVER | VIEW DEFINITION |
SERVER | ADMINISTER BULK OPERATIONS | ADBO | No aplicable | No aplicable |
SERVER | ALTER ANY AVAILABILITY GROUP | ALAG | No aplicable | No aplicable |
SERVER | ALTER ANY CONNECTION | ALCO | No aplicable | No aplicable |
SERVER | ALTER ANY CREDENTIAL | ALCD | No aplicable | No aplicable |
SERVER | ALTER ANY DATABASE | ALDB | No aplicable | No aplicable |
SERVER | ALTER ANY ENDPOINT | ALHE | No aplicable | No aplicable |
SERVER | ALTER ANY EVENT NOTIFICATION | ALES | No aplicable | No aplicable |
SERVER | ALTER ANY EVENT SESSION | AAES | No aplicable | No aplicable |
SERVER | ALTER ANY EVENT SESSION ADD EVENT | LSAE | No aplicable | No aplicable |
SERVER | ALTER ANY EVENT SESSION ADD TARGET | LSAT | No aplicable | No aplicable |
SERVER | ALTER ANY EVENT SESSION DISABLE | 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 | ALTER ANY EVENT SESSION ENABLE | EES | No aplicable | No aplicable |
SERVER | OPCIÓN ALTER ANY EVENT SESSION | LESO | No aplicable | No aplicable |
SERVER | ALTER ANY LINKED SERVER | ALLS | No aplicable | No aplicable |
SERVER | ALTER ANY LOGIN | ALLG | No aplicable | No aplicable |
SERVER | ALTER ANY SERVER AUDIT | ALAA | No aplicable | No aplicable |
SERVER | ALTER ANY SERVER ROLE | ALSR | No aplicable | No aplicable |
SERVER | ALTER RESOURCES | ALRS | No aplicable | No aplicable |
SERVER | ALTER SERVER STATE | ALSS | No aplicable | No aplicable |
SERVER | ALTER SETTINGS | ALST | No aplicable | No aplicable |
SERVER | ALTER TRACE | ALTR | No aplicable | No aplicable |
SERVER | AUTHENTICATE SERVER | AUTH | No aplicable | No aplicable |
SERVER | CONNECT ANY DATABASE | CADB | No aplicable | No aplicable |
SERVER | CONNECT SQL | COSQ | No aplicable | No aplicable |
SERVER | CONTROL SERVER | CL | No aplicable | No aplicable |
SERVER | CREATE ANY DATABASE | CRDB | No aplicable | No aplicable |
SERVER | Crear grupo de disponibilidad | 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 | CREATE TRACE EVENT NOTIFICATION | CRTE | No aplicable | No aplicable |
SERVER | EXTERNAL ACCESS ASSEMBLY | XA | No aplicable | No aplicable |
SERVER | IMPERSONATE ANY LOGIN | IAL | No aplicable | No aplicable |
SERVER | SELECT ALL USER SECURABLES | SUS | No aplicable | No aplicable |
SERVER | SHUTDOWN | SHDN | No aplicable | No aplicable |
SERVER | UNSAFE ASSEMBLY | XU | No aplicable | No aplicable |
SERVER | VIEW ANY DATABASE | VWDB | No aplicable | No aplicable |
SERVER | VIEW ANY DEFINITION | VWAD | No aplicable | No aplicable |
SERVER | VIEW SERVER STATE | VWSS | No aplicable | No aplicable |
SERVER ROLE | ALTER | AL | SERVER | ALTER ANY SERVER ROLE |
SERVER ROLE | CONTROL | CL | SERVER | CONTROL SERVER |
SERVER ROLE | TAKE OWNERSHIP | TO | SERVER | CONTROL SERVER |
SERVER ROLE | VIEW DEFINITION | VW | SERVER | VIEW ANY DEFINITION |
SERVICE | ALTER | AL | DATABASE | ALTER ANY SERVICE |
SERVICE | CONTROL | CL | DATABASE | CONTROL |
SERVICE | ENVIAR | SN | DATABASE | CONTROL |
SERVICE | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
SERVICE | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
SYMMETRIC KEY | ALTER | AL | DATABASE | ALTER ANY SYMMETRIC KEY |
SYMMETRIC KEY | CONTROL | CL | DATABASE | CONTROL |
SYMMETRIC KEY | REFERENCES | RF | DATABASE | REFERENCES |
SYMMETRIC KEY | TAKE OWNERSHIP | TO | DATABASE | CONTROL |
SYMMETRIC KEY | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
TYPE | CONTROL | CL | SCHEMA | CONTROL |
TYPE | Ejecute | EX | SCHEMA | Ejecute |
TYPE | REFERENCES | RF | SCHEMA | REFERENCES |
TYPE | TAKE OWNERSHIP | TO | SCHEMA | CONTROL |
TYPE | VIEW DEFINITION | VW | SCHEMA | VIEW DEFINITION |
USER | ALTER | AL | DATABASE | ALTER ANY USER |
USER | CONTROL | CL | DATABASE | CONTROL |
USER | IMPERSONATE | IM | DATABASE | CONTROL |
USER | VIEW DEFINITION | VW | DATABASE | VIEW DEFINITION |
XML SCHEMA COLLECTION | ALTER | AL | SCHEMA | ALTER |
XML SCHEMA COLLECTION | CONTROL | CL | SCHEMA | CONTROL |
XML SCHEMA COLLECTION | Ejecute | EX | SCHEMA | Ejecute |
XML SCHEMA COLLECTION | REFERENCES | RF | SCHEMA | REFERENCES |
XML SCHEMA COLLECTION | TAKE OWNERSHIP | TO | SCHEMA | CONTROL |
XML SCHEMA COLLECTION | VIEW DEFINITION | VW | SCHEMA | VIEW DEFINITION |
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 Ledger.
3 permisos de base de datos adicionales.
Para obtener más información, consulte Nuevos permisos pormenorizados para SQL Server 2022 y Azure SQL para mejorar la adhesión con PoLP.
Acceso a los permisos de metadatos del sistema
Nivel de servidor:
- VIEW ANY SECURITY DEFINITION
- VER CUALQUIER DEFINICIÓN DE RENDIMIENTO
- VER ESTADO DE SEGURIDAD DEL SERVIDOR
- VER EL ESTADO DE RENDIMIENTO DEL SERVIDOR
- VER CUALQUIER DEFINICIÓN PROTEGIDA CRIPTOGRÁFICAMENTE
Nivel de base de datos:
- VER EL ESTADO DE SEGURIDAD DE LA BASE DE DATOS
- VER EL ESTADO DE RENDIMIENTO DE LA BASE DE DATOS
- VIEW SECURITY DEFINITION
- VER DEFINICIÓN DE RENDIMIENTO
- VISUALIZACIÓN DE LA DEFINICIÓN PROTEGIDA CRIPTOGRÁFICAMENTE
Permisos de eventos extendidos
Nivel de servidor:
- CREATE ANY EVENT SESSION
- DROP ANY EVENT SESSION
- OPCIÓN ALTER ANY EVENT SESSION
- ALTER ANY EVENT SESSION ADD EVENT
- ALTER ANY EVENT SESSION DROP EVENT
- ALTER ANY EVENT SESSION ENABLE
- ALTER ANY EVENT SESSION DISABLE
- ALTER ANY EVENT SESSION ADD TARGET
- 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:
- CREAR CUALQUIER SESIÓN DE EVENTOS DE BASE DE DATOS
- QUITAR CUALQUIER SESIÓN DE EVENTOS DE BASE DE DATOS
- ALTER ANY DATABASE EVENT SESSION OPTION
- ALTER ANY DATABASE EVENT SESSION ADD EVENT
- ALTER ANY DATABASE EVENT SESSION DROP EVENT
- ALTER ANY DATABASE EVENT SESSION ENABLE
- ALTER ANY DATABASE EVENT SESSION DISABLE
- ALTER ANY DATABASE EVENT SESSION ADD TARGET
- ALTER ANY DATABASE EVENT SESSION DROP TARGET
Todos estos permisos están bajo el mismo permiso primario: ALTER ANY DATABASE EVENT SESSION
Permisos de objeto relacionados con la seguridad
- CONTROL (CREDENCIAL)
- CREATE LOGIN
- CREATE USER
- REFERENCES (CREDENTIAL)
- UNMASK (OBJECT)
- UNMASK (SCHEMA)
- VER CUALQUIER REGISTRO DE ERRORES
- VER AUDITORÍA DE SEGURIDAD DEL SERVIDOR
- VER LA AUDITORÍA DE SEGURIDAD DE LA BASE DE DATOS
Permisos de libro de contabilidad
- ALTER LEDGER
- CONFIGURACIÓN DE ALTER LEDGER
- ENABLE LEDGER
- VIEW LEDGER CONTENT
Otros permisos de base de datos
- ALTER ANY EXTERNAL JOB
- ALTER ANY EXTERNAL STREAM
- EXECUTE ANY EXTERNAL ENDPOINT
Resumen del algoritmo de comprobación de permisos
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 permiso GRANT que proporcione el acceso suficiente. El algoritmo contiene tres elementos esenciales, el contexto de seguridad, el espacio del permisoy el permiso necesario.
Nota
No puede conceder, denegar ni revocar permisos a sa, dbo, al propietario de la entidad, information_schema, sys ni a usted mismo.
Contexto de seguridad
Es el grupo de entidades de seguridad que aportan los permisos para la comprobación de acceso. Son los permisos que están relacionados con el inicio de sesión actual o el usuario, a menos que el contexto de seguridad se cambiara a otro inicio de sesión o usuario utilizando la instrucción EXECUTE AS. El contexto de seguridad incluye las entidades de seguridad siguientes:
El inicio de sesión
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.
Espacio del permiso
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 el permiso EXECUTE sobre el procedimiento almacenado y el permiso INSERT sobre varias tablas a las que hace referencia el procedimiento almacenado.
Una vista de administración dinámica puede requerir los permisos VIEW SERVER STATE y 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:
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.
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.
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.
Para ese contexto de seguridad, reúne todos los permisos que se conceden o deniegan para el espacio del permiso. El permiso se puede nombrar explícitamente como GRANT, GRANT WITH GRANT o DENY; o los permisos pueden ser un permiso GRANT o DENY implícito o inclusivo. 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.
Nota
Un permiso GRANT de nivel de columna invalida un permiso DENY en el nivel de objeto. Puede obtener más información sobre su aquí: DENY Object Permissions (Transact-SQL) (Permisos de objeto DENY [Transact-SQL]).
Identifique el permiso requerido.
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.
Pase la comprobación de permisos si no se denegó el permiso necesario y el permiso necesario contiene un permiso GRANT o GRANT WITH GRANT directamente o implícitamente a cualquiera de las identidades del contexto de seguridad de cualquier objeto en el 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>(<columna _name>)). Por ejemplo:
GRANT SELECT ON OBJECT::Customer(CustomerName) TO UserJoe;
Un permiso DENY en la tabla se reemplaza por un permiso GRANT en una columna. Pero un permiso DENY subsiguiente en la tabla quitará la columna GRANT.
Ejemplos
En los ejemplos de esta sección se muestra cómo se recupera la información sobre permisos.
A. Devolver la lista completa de permisos que se pueden conceder
La siguiente instrucción devuelve todos los permisos de Motor de base de datos mediante la función fn_builtin_permissions
. Para obtener más información, consulte sys.fn_builtin_permissions (Transact-SQL).
SELECT * FROM fn_builtin_permissions(default);
GO
B. Devolver los permisos en una clase determinada de objetos
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 concedidos a la entidad de seguridad en ejecución en un objeto
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 (Transact-SQL).
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
. Observe 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