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 el Server Securable.
CREATE <Database Securable>
Confiere al receptor la posibilidad de crear el 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 permisos de SQL Server
Para obtener un gráfico de tamaño de póster de todos los permisos de 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 |
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 |
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 |
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 |
ALTER |
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 |
TAKE OWNERSHIP |
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 |
CONTROL |
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 |
Permisos SQL Server
La siguiente tabla 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 |
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 |
SCHEMA |
ALTER |
AL |
DATABASE |
ALTER ANY SCHEMA |
SCHEMA |
CONTROL |
CL |
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 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 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 DDL EVENT NOTIFICATION |
CRDE |
No aplicable |
No aplicable |
SERVER |
CREATE ENDPOINT |
CRHE |
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 |
SERVICE |
ALTER |
AL |
DATABASE |
ALTER ANY SERVICE |
SERVICE |
CONTROL |
CL |
DATABASE |
CONTROL |
SERVICE |
SEND |
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 requerido.
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 al que contribuyen 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 realiza 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. Para obtener más información acerca del encadenamiento de propiedad, vea Cadenas de propiedad.
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. Para obtener más información, vea Permisos inclusivos e implícitos (Motor de base de datos).
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 directa o implícitamente a cualquiera de las identidades del contexto de seguridad para cualquier objeto del espacio del permiso.
Ejemplos
Los siguientes ejemplos muestran cómo recuperar 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, vea sys.fn_builtin_permissions (Transact-SQL).
SELECT * FROM fn_builtin_permissions(default);
GO
B. Devolver los permisos de una clase de objetos concreta
También puede utilizar la función fn_builtin_permissions para ver todos los permisos disponibles para una categoría de elementos protegibles. El ejemplo siguiente 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
Puede utilizar fn_my_permissions para devolver una lista de los permisos efectivos retenidos por la entidad de seguridad que realiza la llamada en un elemento protegible especificado. Para obtener más información, vea sys.fn_my_permissions (Transact-SQL). El ejemplo siguiente devuelve los permisos de un objeto denominado Orders55.
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