Permisos (motor de base de datos)
Todos los elementos protegibles de SQL Server tienen permisos asociados que se pueden conceder a una entidad de seguridad. Este tema proporciona la siguiente información:
Convenciones de nomenclatura de permisos
Permisos relacionados con elementos protegibles específicos
Permisos de SQL Server
Algoritmo de comprobación de permiso
Ejemplos
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 de servidor.
Confiere la posibilidad de crear, modificar o quitar instancias individuales de Server Securable. 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, modificar o quitar instancias individuales de Database Securable. 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.
IMPERSONATE <Login>
Permite al receptor suplantar el inicio de sesión.
IMPERSONATE <User>
Permite al receptor suplantar al usuario.
CREATE <Server Securable>
Confiere al receptor la posibilidad de crear Server Securable.
CREATE <Database Securable>
Confiere al receptor la posibilidad de crear Database Securable.
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 los permisos de SQL Server
Para obtener un gráfico con tamaño cartel de todos los permisos del Motor de base de datos en formato PDF, vea https://go.microsoft.com/fwlink/?LinkId=229142.
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 |
---|---|
SELECT |
Sinónimos Tablas y columnas Funciones con valores de tabla, Transact-SQL y Common Language Runtime (CLR), y columnas Vistas y columnas |
VIEW CHANGE TRACKING |
Tablas Esquemas |
UPDATE |
Sinónimos Tablas y columnas Vistas y columnas Objetos de secuencia |
REFERENCES |
Funciones escalares y de agregado (Transact-SQL y CLR) Colas de Service Broker Tablas y columnas Funciones con valores de tabla (Transact-SQL y CLR), y columnas Tipos Vistas y columnas Objetos de secuencia |
INSERT |
Sinónimos Tablas y columnas Vistas y columnas |
DELETE |
Sinónimos Tablas y columnas Vistas y columnas |
EXECUTE |
Procedimientos (Transact-SQL y CLR) Funciones escalares y de agregado (Transact-SQL y CLR) Sinónimos Tipos CLR |
RECEIVE |
Colas de Service Broker |
VIEW DEFINITION |
Inicios de sesión, usuarios y roles Procedimientos (Transact-SQL y CLR) Colas de Service Broker Funciones escalares y de agregado (Transact-SQL y CLR) Sinónimos Tablas Funciones con valores de tabla (Transact-SQL y CLR) Vistas Objetos de secuencia |
ALTER |
Inicios de sesión, usuarios y roles Procedimientos (Transact-SQL y CLR) Funciones escalares y de agregado (Transact-SQL y CLR) Colas de Service Broker Tablas Funciones con valores de tabla (Transact-SQL y CLR) Vistas Objetos de secuencia |
TAKE OWNERSHIP |
Roles Procedimientos (Transact-SQL y CLR) Funciones escalares y de agregado (Transact-SQL y CLR) Sinónimos Tablas Funciones con valores de tabla (Transact-SQL y CLR) Vistas Objetos de secuencia |
CONTROL |
Inicios de sesión, usuarios y roles Procedimientos (Transact-SQL y CLR) Funciones escalares y de agregado (Transact-SQL y CLR) Colas de Service Broker Sinónimos Tablas Funciones con valores de tabla (Transact-SQL y CLR) Vistas Objetos de secuencia |
IMPERSONATE |
Inicios de sesión y usuarios |
Permisos de SQL Server
La tabla siguiente contiene una lista completa de los permisos de SQL Server.
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 |
CERTIFICATE |
ALTER |
AL |
DATABASE |
ALTER ANY CERTIFICATE |
CERTIFICATE |
CONTROL |
CL |
DATABASE |
CONTROL |
CERTIFICATE |
REFERENCES |
RF |
DATABASE |
REFERENCES |
CERTIFICATE |
TAKE OWNERSHIP |
TO |
DATABASE |
CONTROL |
CERTIFICATE |
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 |
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 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 DATASPACE |
ALDS |
SERVER |
CONTROL SERVER |
DATABASE |
ALTER ANY FULLTEXT CATALOG |
ALFT |
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 SERVICE |
ALSV |
SERVER |
CONTROL SERVER |
DATABASE |
ALTER ANY SYMMETRIC KEY |
ALSK |
SERVER |
CONTROL SERVER |
DATABASE |
ALTER ANY USER |
ALUS |
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 |
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 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 VIEW |
CRVW |
SERVER |
CONTROL SERVER |
DATABASE |
CREATE XML SCHEMA COLLECTION |
CRXS |
SERVER |
CONTROL SERVER |
DATABASE |
DELETE |
DL |
SERVER |
CONTROL SERVER |
DATABASE |
EXECUTE |
EX |
SERVER |
CONTROL SERVER |
DATABASE |
INSERT |
IN |
SERVER |
CONTROL SERVER |
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 |
UPDATE |
UP |
SERVER |
CONTROL SERVER |
DATABASE |
VIEW DATABASE STATE |
VWDS |
SERVER |
VIEW SERVER STATE |
DATABASE |
VIEW DEFINITION |
VW |
SERVER |
VIEW ANY 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 |
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 |
TAKE OWNERSHIP |
TO |
SCHEMA |
CONTROL |
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 |
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 |
SCHEMA |
ALTER |
AL |
DATABASE |
ALTER ANY 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 |
TAKE OWNERSHIP |
TO |
DATABASE |
CONTROL |
SCHEMA |
UPDATE |
UP |
DATABASE |
UPDATE |
SCHEMA |
VIEW CHANGE TRACKING |
VWCT |
DATABASE |
VIEW CHANGE TRACKING |
SCHEMA |
VIEW DEFINITION |
VW |
DATABASE |
VIEW DEFINITION |
SERVER |
ADMINISTER BULK OPERATIONS |
ADBO |
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 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 AVAILABILITY GROUP |
ALAG |
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 SQL |
COSQ |
No aplicable |
No aplicable |
SERVER |
CONTROL SERVER |
CL |
No aplicable |
No aplicable |
SERVER |
CREATE ANY DATABASE |
CRDB |
No aplicable |
No aplicable |
SERVER |
CREATE AVAILABILTITY 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 |
CREATE TRACE EVENT NOTIFICATION |
CRTE |
No aplicable |
No aplicable |
SERVER |
EXTERNAL ACCESS ASSEMBLY |
XA |
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 |
EXECUTE |
EX |
SCHEMA |
EXECUTE |
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 |
EXECUTE |
EX |
SCHEMA |
EXECUTE |
XML SCHEMA COLLECTION |
REFERENCES |
RF |
SCHEMA |
REFERENCES |
XML SCHEMA COLLECTION |
TAKE OWNERSHIP |
TO |
SCHEMA |
CONTROL |
XML SCHEMA COLLECTION |
VIEW DEFINITION |
VW |
SCHEMA |
VIEW DEFINITION |
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 permiso GRANT que proporcione el acceso suficiente. El algoritmo contiene tres elementos esenciales, el contexto de seguridad, el espacio del permiso y 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
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.
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 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.
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.
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.
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 instrucción siguiente devuelve todos los permisos de Motor de base de datos usando la función fn_builtin_permissions . Para obtener más información, veasys.fn_builtin_permissions (Transact-SQL).
SELECT * FROM fn_builtin_permissions(default);
GO
B.Devolver los permisos de una clase de objetos concreta
En el siguiente ejemplo se usa fn_builtin_permissions para ver todos los permisos que están disponibles para una categoría de 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, veasys.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
Vea también
Referencia
sys.database_permissions (Transact-SQL)