Permisos (motor de base de datos) - SQL Server (2022)

  • Artículo
  • Tiempo de lectura: 22 minutos

Se aplica a:Permisos (motor de base de datos) - SQL Server (1)SQLServer (todas las versiones admitidas) Permisos (motor de base de datos) - SQL Server (2)Azure SQL Database Permisos (motor de base de datos) - SQL Server (3)Azure SQL Managed Instance Permisos (motor de base de datos) - SQL Server (4)Azure Synapse Analytics Permisos (motor de base de datos) - SQL Server (5)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 2019 (15.x) es 248. AzureSQLDatabase expone 254permisos. La mayoría de los permisos se aplica a todas las plataformas, pero otros no. Por ejemplo, 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 2017 (14.x) expuso 238permisos. 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 expuso 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.

    (Video) Roles Usuarios y Permisos en Sql Server | #2

  • IMPERSONATE <Login>

    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

El gráfico siguiente muestra los permisos y las relaciones entre ellos. 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. Haga clic en la imagen para descargar el póster de los permisos de los motores de bases de datos en formato pdf.

Permisos (motor de base de datos) - SQL Server (6)

(Video) Seguridad en SQLServer

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.

PermisoSe aplica a
ALTERTodas las clases de objetos excepto TYPE.
CONTROLTodas 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
DeleteTodas las clases de objetos excepto DATABASE SCOPED CONFIGURATION, SERVER y TYPE.
EjecuteTipos CLR, scripts externos, procedimientos (Transact-SQL y CLR), funciones escalares y de agregado (Transact-SQL y CLR) y sinónimos
IMPERSONATEInicios de sesión y usuarios
INSERTSinó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.
RECEIVEColas deService Broker
REFERENCESAGGREGATE,
ASSEMBLY,
ASYMMETRIC KEY,
CERTIFICATE,
CONTRACT,
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
SELECTSinó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 OWNERSHIPTodas las clases de objetos excepto DATABASE SCOPED CONFIGURATION, LOGIN, SERVER y USER.
UPDATESinó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 TRACKINGEsquemas y tablas
VIEW DEFINITIONTodas 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 deAzureSQLDatabase solo están disponibles para elementos protegibles de base que se admiten. No se pueden conceder permisos de nivel de servidor en AzureSQLDatabase; sin embargo, en algunos casos los permisos de base de datos están disponibles en su lugar.

Elemento protegible basePermisos granulares del elemento protegible baseCódigo del tipo de permisoElemento protegible que contiene un elemento protegible basePermiso para el elemento protegible contenedor que implica permiso granular para el elemento protegible base
APPLICATION ROLEALTERALDATABASEALTER ANY APPLICATION ROLE
APPLICATION ROLECONTROLCLDATABASECONTROL
APPLICATION ROLEVIEW DEFINITIONVWDATABASEVIEW DEFINITION
ASSEMBLYALTERALDATABASEALTER ANY ASSEMBLY
ASSEMBLYCONTROLCLDATABASECONTROL
ASSEMBLYREFERENCESRFDATABASEREFERENCES
ASSEMBLYTAKE OWNERSHIPTODATABASECONTROL
ASSEMBLYVIEW DEFINITIONVWDATABASEVIEW DEFINITION
ASYMMETRIC KEYALTERALDATABASEALTER ANY ASYMMETRIC KEY
ASYMMETRIC KEYCONTROLCLDATABASECONTROL
ASYMMETRIC KEYREFERENCESRFDATABASEREFERENCES
ASYMMETRIC KEYTAKE OWNERSHIPTODATABASECONTROL
ASYMMETRIC KEYVIEW DEFINITIONVWDATABASEVIEW DEFINITION
AVAILABILITY GROUPALTERALSERVERALTER ANY AVAILABILITY GROUP
AVAILABILITY GROUPCONTROLCLSERVERCONTROL SERVER
AVAILABILITY GROUPTAKE OWNERSHIPTOSERVERCONTROL SERVER
AVAILABILITY GROUPVIEW DEFINITIONVWSERVERVIEW ANY DEFINITION
CERTIFICADOALTERALDATABASEALTER ANY CERTIFICATE
CERTIFICADOCONTROLCLDATABASECONTROL
CERTIFICADOREFERENCESRFDATABASEREFERENCES
CERTIFICADOTAKE OWNERSHIPTODATABASECONTROL
CERTIFICADOVIEW DEFINITIONVWDATABASEVIEW DEFINITION
CONTRACTALTERALDATABASEALTER ANY CONTRACT
CONTRACTCONTROLCLDATABASECONTROL
CONTRACTREFERENCESRFDATABASEREFERENCES
CONTRACTTAKE OWNERSHIPTODATABASECONTROL
CONTRACTVIEW DEFINITIONVWDATABASEVIEW DEFINITION
DATABASEADMINISTER DATABASE BULK OPERATIONSDABOSERVERCONTROL SERVER
DATABASEALTERALSERVERALTER ANY DATABASE
DATABASEALTER ANY APPLICATION ROLEALARSERVERCONTROL SERVER
DATABASEALTER ANY ASSEMBLYALASSERVERCONTROL SERVER
DATABASEALTER ANY ASYMMETRIC KEYALAKSERVERCONTROL SERVER
DATABASEALTER ANY CERTIFICATEALCFSERVERCONTROL SERVER
DATABASEALTER ANY COLUMN ENCRYPTION KEYALCK

Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), AzureSQLDatabase.

SERVERCONTROL SERVER
DATABASEALTER ANY COLUMN MASTER KEYALCM

Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), AzureSQLDatabase.

SERVERCONTROL SERVER
DATABASEALTER ANY CONTRACTALSCSERVERCONTROL SERVER
DATABASEALTER ANY DATABASE AUDITALDASERVERALTER ANY SERVER AUDIT
DATABASEALTER ANY DATABASE DDL TRIGGERALTGSERVERCONTROL SERVER
DATABASEALTER ANY DATABASE EVENT NOTIFICATIONALEDSERVERALTER ANY EVENT NOTIFICATION
DATABASEALTER ANY DATABASE EVENT SESSIONAADS

Se aplica a AzureSQLDatabase.

SERVERALTER ANY EVENT SESSION
DATABASEALTER ANY DATABASE SCOPED CONFIGURATIONALDC

Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), AzureSQLDatabase.

SERVERCONTROL SERVER
DATABASEALTER ANY DATASPACEALDSSERVERCONTROL SERVER
DATABASEALTER ANY EXTERNAL DATA SOURCEAEDSSERVERCONTROL SERVER
DATABASEALTER ANY EXTERNAL FILE FORMATAEFFSERVERCONTROL SERVER
DATABASEALTER ANY FULLTEXT CATALOGALFTSERVERCONTROL SERVER
DATABASEALTER ANY MASKAAMK

Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), AzureSQLDatabase.

SERVERCONTROL SERVER
DATABASEALTER ANY MESSAGE TYPEALMTSERVERCONTROL SERVER
DATABASEALTER ANY REMOTE SERVICE BINDINGALSBSERVERCONTROL SERVER
DATABASEALTER ANY ROLEALRLSERVERCONTROL SERVER
DATABASEALTER ANY ROUTEALRTSERVERCONTROL SERVER
DATABASEALTER ANY SCHEMAALSMSERVERCONTROL SERVER
DATABASEALTER ANY SECURITY POLICYALSP

Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), AzureSQLDatabase.

SERVERCONTROL SERVER
DATABASEALTER ANY SENSITIVITY CLASSIFICATIONAASC
Se aplica a SQL Server (SQLServer2019 (15.x) hasta la versión actual), AzureSQLDatabase.
SERVERCONTROL SERVER
DATABASEALTER ANY SERVICEALSVSERVERCONTROL SERVER
DATABASEALTER ANY SYMMETRIC KEYALSKSERVERCONTROL SERVER
DATABASEALTER ANY USERALUSSERVERCONTROL SERVER
DATABASEAUTHENTICATEAUTHSERVERAUTHENTICATE SERVER
DATABASEBACKUP DATABASEBADBSERVERCONTROL SERVER
DATABASEBACKUP LOGBALOSERVERCONTROL SERVER
DATABASECHECKPOINTCPSERVERCONTROL SERVER
DATABASECONNECTCOSERVERCONTROL SERVER
DATABASECONNECT REPLICATIONCORPSERVERCONTROL SERVER
DATABASECONTROLCLSERVERCONTROL SERVER
DATABASECREATE AGGREGATECRAGSERVERCONTROL SERVER
DATABASECREATE ASSEMBLYCRASSERVERCONTROL SERVER
DATABASECREATE ASYMMETRIC KEYCRAKSERVERCONTROL SERVER
DATABASECREATE CERTIFICATECRCFSERVERCONTROL SERVER
DATABASECREATE CONTRACTCRSCSERVERCONTROL SERVER
DATABASECREATE DATABASECRDBSERVERCREATE ANY DATABASE
DATABASECREATE DATABASE DDL EVENT NOTIFICATIONCREDSERVERCREATE DDL EVENT NOTIFICATION
DATABASECREATE DEFAULTCRDFSERVERCONTROL SERVER
DATABASECREATE FULLTEXT CATALOGCRFTSERVERCONTROL SERVER
DATABASECREATE FUNCTIONCRFNSERVERCONTROL SERVER
DATABASECREATE MESSAGE TYPECRMTSERVERCONTROL SERVER
DATABASECREATE PROCEDURECRPRSERVERCONTROL SERVER
DATABASECREATE QUEUECRQUSERVERCONTROL SERVER
DATABASECREATE REMOTE SERVICE BINDINGCRSBSERVERCONTROL SERVER
DATABASECREATE ROLECRRLSERVERCONTROL SERVER
DATABASECREATE ROUTECRRTSERVERCONTROL SERVER
DATABASECREATE RULECRRUSERVERCONTROL SERVER
DATABASECREATE SCHEMACRSMSERVERCONTROL SERVER
DATABASECREATE SERVICECRSVSERVERCONTROL SERVER
DATABASECREATE SYMMETRIC KEYCRSKSERVERCONTROL SERVER
DATABASECREATE SYNONYMCRSNSERVERCONTROL SERVER
DATABASECREATE TABLECRTBSERVERCONTROL SERVER
DATABASECREATE TYPECRTYSERVERCONTROL SERVER
DATABASECREATE VIEWCRVWSERVERCONTROL SERVER
DATABASECREATE XML SCHEMA COLLECTIONCRXSSERVERCONTROL SERVER
DATABASEDeleteDLSERVERCONTROL SERVER
DATABASEEjecuteEXSERVERCONTROL SERVER
DATABASEEXECUTE ANY EXTERNAL SCRIPTEAES

Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual).

SERVERCONTROL SERVER
DATABASEINSERTINSERVERCONTROL SERVER
DATABASEKILL DATABASE CONNECTIONKIDC

Solo se aplica a AzureSQLDatabase. Use ALTER ANY CONNECTION en SQL Server.

SERVERALTER ANY CONNECTION
DATABASEREFERENCESRFSERVERCONTROL SERVER
DATABASESELECTSLSERVERCONTROL SERVER
DATABASESHOWPLANSPLNSERVERALTER TRACE
DATABASESUBSCRIBE QUERY NOTIFICATIONSSUQNSERVERCONTROL SERVER
DATABASETAKE OWNERSHIPTOSERVERCONTROL SERVER
DATABASEUNMASKUMSK

Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), AzureSQLDatabase.

SERVERCONTROL SERVER
DATABASEUPDATEUPSERVERCONTROL SERVER
DATABASEVIEW ANY COLUMN ENCRYPTION KEY DEFINITIONVWCK

Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), AzureSQLDatabase.

SERVERVIEW SERVER STATE
DATABASEVIEW ANY COLUMN MASTER KEY DEFINITIONvWCM

Se aplica a SQL Server (SQL Server 2016 (13.x) hasta la versión actual), AzureSQLDatabase.

SERVERVIEW SERVER STATE
DATABASEVIEW DATABASE STATEVWDSSERVERVIEW SERVER STATE
DATABASEVIEW DEFINITIONVWSERVERVIEW ANY DEFINITION
DATABASE SCOPED CREDENTIALALTERALDATABASECONTROL
DATABASE SCOPED CREDENTIALCONTROLCLDATABASECONTROL
DATABASE SCOPED CREDENTIALREFERENCESRFDATABASEREFERENCES
DATABASE SCOPED CREDENTIALTAKE OWNERSHIPTODATABASECONTROL
DATABASE SCOPED CREDENTIALVIEW DEFINITIONVWDATABASEVIEW DEFINITION
ENDPOINTALTERALSERVERALTER ANY ENDPOINT
ENDPOINTCONNECTCOSERVERCONTROL SERVER
ENDPOINTCONTROLCLSERVERCONTROL SERVER
ENDPOINTTAKE OWNERSHIPTOSERVERCONTROL SERVER
ENDPOINTVIEW DEFINITIONVWSERVERVIEW ANY DEFINITION
FULLTEXT CATALOGALTERALDATABASEALTER ANY FULLTEXT CATALOG
FULLTEXT CATALOGCONTROLCLDATABASECONTROL
FULLTEXT CATALOGREFERENCESRFDATABASEREFERENCES
FULLTEXT CATALOGTAKE OWNERSHIPTODATABASECONTROL
FULLTEXT CATALOGVIEW DEFINITIONVWDATABASEVIEW DEFINITION
FULLTEXT STOPLISTALTERALDATABASEALTER ANY FULLTEXT CATALOG
FULLTEXT STOPLISTCONTROLCLDATABASECONTROL
FULLTEXT STOPLISTREFERENCESRFDATABASEREFERENCES
FULLTEXT STOPLISTTAKE OWNERSHIPTODATABASECONTROL
FULLTEXT STOPLISTVIEW DEFINITIONVWDATABASEVIEW DEFINITION
LOGINALTERALSERVERALTER ANY LOGIN
LOGINCONTROLCLSERVERCONTROL SERVER
LOGINIMPERSONATEIMSERVERCONTROL SERVER
LOGINVIEW DEFINITIONVWSERVERVIEW ANY DEFINITION
MESSAGE TYPEALTERALDATABASEALTER ANY MESSAGE TYPE
MESSAGE TYPECONTROLCLDATABASECONTROL
MESSAGE TYPEREFERENCESRFDATABASEREFERENCES
MESSAGE TYPETAKE OWNERSHIPTODATABASECONTROL
MESSAGE TYPEVIEW DEFINITIONVWDATABASEVIEW DEFINITION
OBJECTALTERALSCHEMAALTER
OBJECTCONTROLCLSCHEMACONTROL
OBJECTDeleteDLSCHEMADelete
OBJECTEjecuteEXSCHEMAEjecute
OBJECTINSERTINSCHEMAINSERT
OBJECTRECEIVERCSCHEMACONTROL
OBJECTREFERENCESRFSCHEMAREFERENCES
OBJECTSELECTSLSCHEMASELECT
OBJECTTAKE OWNERSHIPTOSCHEMACONTROL
OBJECTUPDATEUPSCHEMAUPDATE
OBJECTVIEW CHANGE TRACKINGVWCTSCHEMAVIEW CHANGE TRACKING
OBJECTVIEW DEFINITIONVWSCHEMAVIEW DEFINITION
REMOTE SERVICE BINDINGALTERALDATABASEALTER ANY REMOTE SERVICE BINDING
REMOTE SERVICE BINDINGCONTROLCLDATABASECONTROL
REMOTE SERVICE BINDINGTAKE OWNERSHIPTODATABASECONTROL
REMOTE SERVICE BINDINGVIEW DEFINITIONVWDATABASEVIEW DEFINITION
ROLEALTERALDATABASEALTER ANY ROLE
ROLECONTROLCLDATABASECONTROL
ROLETAKE OWNERSHIPTODATABASECONTROL
ROLEVIEW DEFINITIONVWDATABASEVIEW DEFINITION
ROUTEALTERALDATABASEALTER ANY ROUTE
ROUTECONTROLCLDATABASECONTROL
ROUTETAKE OWNERSHIPTODATABASECONTROL
ROUTEVIEW DEFINITIONVWDATABASEVIEW DEFINITION
SEARCH PROPERTY LISTALTERALSERVERALTER ANY FULLTEXT CATALOG
SEARCH PROPERTY LISTCONTROLCLSERVERCONTROL
SEARCH PROPERTY LISTREFERENCESRFSERVERREFERENCES
SEARCH PROPERTY LISTTAKE OWNERSHIPTOSERVERCONTROL
SEARCH PROPERTY LISTVIEW DEFINITIONVWSERVERVIEW DEFINITION
SCHEMAALTERALDATABASEALTER ANY SCHEMA
SCHEMACONTROLCLDATABASECONTROL
SCHEMACREATE SEQUENCECRSODATABASECONTROL
SCHEMADeleteDLDATABASEDelete
SCHEMAEjecuteEXDATABASEEjecute
SCHEMAINSERTINDATABASEINSERT
SCHEMAREFERENCESRFDATABASEREFERENCES
SCHEMASELECTSLDATABASESELECT
SCHEMATAKE OWNERSHIPTODATABASECONTROL
SCHEMAUPDATEUPDATABASEUPDATE
SCHEMAVIEW CHANGE TRACKINGVWCTDATABASEVIEW CHANGE TRACKING
SCHEMAVIEW DEFINITIONVWDATABASEVIEW DEFINITION
SERVERADMINISTER BULK OPERATIONSADBONo aplicableNo aplicable
SERVERALTER ANY AVAILABILITY GROUPALAGNo aplicableNo aplicable
SERVERALTER ANY CONNECTIONALCONo aplicableNo aplicable
SERVERALTER ANY CREDENTIALALCDNo aplicableNo aplicable
SERVERALTER ANY DATABASEALDBNo aplicableNo aplicable
SERVERALTER ANY ENDPOINTALHENo aplicableNo aplicable
SERVERALTER ANY EVENT NOTIFICATIONALESNo aplicableNo aplicable
SERVERALTER ANY EVENT SESSIONAAESNo aplicableNo aplicable
SERVERALTER ANY LINKED SERVERALLSNo aplicableNo aplicable
SERVERALTER ANY LOGINALLGNo aplicableNo aplicable
SERVERALTER ANY SERVER AUDITALAANo aplicableNo aplicable
SERVERALTER ANY SERVER ROLEALSRNo aplicableNo aplicable
SERVERALTER RESOURCESALRSNo aplicableNo aplicable
SERVERALTER SERVER STATEALSSNo aplicableNo aplicable
SERVERALTER SETTINGSALSTNo aplicableNo aplicable
SERVERALTER TRACEALTRNo aplicableNo aplicable
SERVERAUTHENTICATE SERVERAUTHNo aplicableNo aplicable
SERVERCONNECT ANY DATABASECADBNo aplicableNo aplicable
SERVERCONNECT SQLCOSQNo aplicableNo aplicable
SERVERCONTROL SERVERCLNo aplicableNo aplicable
SERVERCREATE ANY DATABASECRDBNo aplicableNo aplicable
SERVERCrear grupo de disponibilidadCRACNo aplicableNo aplicable
SERVERCREATE DDL EVENT NOTIFICATIONCRDENo aplicableNo aplicable
SERVERCREATE ENDPOINTCRHENo aplicableNo aplicable
SERVERCREATE SERVER ROLECRSRNo aplicableNo aplicable
SERVERCREATE TRACE EVENT NOTIFICATIONCRTENo aplicableNo aplicable
SERVEREXTERNAL ACCESS ASSEMBLYXANo aplicableNo aplicable
SERVERIMPERSONATE ANY LOGINIALNo aplicableNo aplicable
SERVERSELECT ALL USER SECURABLESSUSNo aplicableNo aplicable
SERVERSHUTDOWNSHDNNo aplicableNo aplicable
SERVERUNSAFE ASSEMBLYXUNo aplicableNo aplicable
SERVERVIEW ANY DATABASEVWDBNo aplicableNo aplicable
SERVERVIEW ANY DEFINITIONVWADNo aplicableNo aplicable
SERVERVIEW SERVER STATEVWSSNo aplicableNo aplicable
SERVER ROLEALTERALSERVERALTER ANY SERVER ROLE
SERVER ROLECONTROLCLSERVERCONTROL SERVER
SERVER ROLETAKE OWNERSHIPTOSERVERCONTROL SERVER
SERVER ROLEVIEW DEFINITIONVWSERVERVIEW ANY DEFINITION
SERVICEALTERALDATABASEALTER ANY SERVICE
SERVICECONTROLCLDATABASECONTROL
SERVICEENVIARSNDATABASECONTROL
SERVICETAKE OWNERSHIPTODATABASECONTROL
SERVICEVIEW DEFINITIONVWDATABASEVIEW DEFINITION
SYMMETRIC KEYALTERALDATABASEALTER ANY SYMMETRIC KEY
SYMMETRIC KEYCONTROLCLDATABASECONTROL
SYMMETRIC KEYREFERENCESRFDATABASEREFERENCES
SYMMETRIC KEYTAKE OWNERSHIPTODATABASECONTROL
SYMMETRIC KEYVIEW DEFINITIONVWDATABASEVIEW DEFINITION
TYPECONTROLCLSCHEMACONTROL
TYPEEjecuteEXSCHEMAEjecute
TYPEREFERENCESRFSCHEMAREFERENCES
TYPETAKE OWNERSHIPTOSCHEMACONTROL
TYPEVIEW DEFINITIONVWSCHEMAVIEW DEFINITION
USERALTERALDATABASEALTER ANY USER
USERCONTROLCLDATABASECONTROL
USERIMPERSONATEIMDATABASECONTROL
USERVIEW DEFINITIONVWDATABASEVIEW DEFINITION
XML SCHEMA COLLECTIONALTERALSCHEMAALTER
XML SCHEMA COLLECTIONCONTROLCLSCHEMACONTROL
XML SCHEMA COLLECTIONEjecuteEXSCHEMAEjecute
XML SCHEMA COLLECTIONREFERENCESRFSCHEMAREFERENCES
XML SCHEMA COLLECTIONTAKE OWNERSHIPTOSCHEMACONTROL
XML SCHEMA COLLECTIONVIEW DEFINITIONVWSCHEMAVIEW DEFINITION

Permisos de Azure SQL Database

Actualmente, estos permisos solo se aplican a AzureSQL Database, pero no son los únicos permisos para AzureSQL Database. Consulte la sección Permiso anterior para obtener permisos adicionales de AzureSQL Database.

(Video) 14 - Configuración básica SQL Server

Elemento protegible basePermisos granulares del elemento protegible baseCódigo del tipo de permisoElemento protegible que contiene un elemento protegible basePermiso para el elemento protegible contenedor que implica permiso granular para el elemento protegible baseDescripción
DATABASEENABLE LEDGERELSERVERCONTROLPermite al receptor crear nuevas tablas de libro de contabilidad.
DATABASEALTER LEDGERALRSERVERCONTROLPermite al receptor quitar tablas de libro de contabilidad.
DATABASEVIEW LEDGER CONTENTVLCSERVERCONTROLPermite al receptor ver las vistas de catálogo de libros de contabilidad de nivel de base de datos e invocar la comprobación.
DATABASEGENERATE LEDGER DIGESTGLDSERVERCONTROLPermite al receptor generar un resumen del libro de contabilidad.

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:

  • 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.

      (Video) VIDEO 1 Taller en Administración de Bases de Datos con SQL Server 2014

    • 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:

  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 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 (Permisos de objeto de Transact-SQL).

  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 del permiso es correcta si no se denegó el permiso requerido y el permiso requerido contiene un permiso GRANT o un permiso GRANT WITH GRANT directo o implícito para cualquiera de las identidades del contexto de seguridad de cualquier objeto del espacio del permiso.

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 los permisos que pueden concederse.

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, vea sys.fn_builtin_permissions (Transact-SQL).

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.

(Video) DETENER SQL SERVER

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, vea 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 

Consulta también

Jerarquía de permisos (motor de base de datos)
sys.database_permissions (Transact-SQL)

Videos

1. Desarrollo de base de datos en SQL Server
(visoalgt)
2. SQL SERVER - INICIOS DE SESION
(Wilber Jose Matus Gonzalez)
3. Como crear auditorías de seguridad en SQL Server
(TriggerDB - SQL Server y Azure SQL)
4. Instalacion de motores de base de datos(Fundamento de bases de datos)
(Defensor UniverseG)
5. Administrador SQL Server
(Instituto Bios)
6. Create Table - Transact SQL - Step by step
(Problemitis)

You might also like

Latest Posts

Article information

Author: Clemencia Bogisich Ret

Last Updated: 08/21/2022

Views: 6182

Rating: 5 / 5 (60 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Clemencia Bogisich Ret

Birthday: 2001-07-17

Address: Suite 794 53887 Geri Spring, West Cristentown, KY 54855

Phone: +5934435460663

Job: Central Hospitality Director

Hobby: Yoga, Electronics, Rafting, Lockpicking, Inline skating, Puzzles, scrapbook

Introduction: My name is Clemencia Bogisich Ret, I am a super, outstanding, graceful, friendly, vast, comfortable, agreeable person who loves writing and wants to share my knowledge and understanding with you.