Está en la página 1de 7

GRANT (permisos de base de datos de Transact-SQL)

Concede permisos en una base de datos. Convenciones de sintaxis de Transact-SQL Sintaxis


GRANT <permission> [ ,...n ] TO <database_principal> [ ,...n ] [ WITH GRANT OPTION ] [ AS <database_principal> ] <permission>::= permission | ALL [ PRIVILEGES ] <database_principal> ::= Database_user | Database_role | Application_role | Database_user_mapped_to_Windows_User | Database_user_mapped_to_Windows_Group | Database_user_mapped_to_certificate | Database_user_mapped_to_asymmetric_key | Database_user_with_no_login

Argumentos permission Especifica un permiso que se puede conceder en una base de datos. Para obtener una lista de permisos, vea la seccin Notas ms adelante en este tema. ALL Esta opcin no concede todos los permisos posibles. Conceder ALL es equivalente a conceder los siguientes permisos: BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE y CREATE VIEW. PRIVILEGES Incluido por compatibilidad con ISO. No cambia el comportamiento de ALL. WITH GRANT OPTION

Indica que la entidad de seguridad tambin podr conceder el permiso especificado a otras entidades de seguridad. AS <database_principal> Especifica una entidad de seguridad de la que la entidad de seguridad que ejecuta esta consulta deriva su derecho de conceder el permiso. Database_user Especifica un usuario de base de datos. Database_role Especifica un rol de base de datos. Application_role Especifica un rol de aplicacin. Database_user_mapped_to_Windows_User Especifica un usuario de base de datos asignado a un usuario de Windows. Database_user_mapped_to_Windows_Group Especifica un usuario de base de datos asignado a un grupo de Windows. Database_user_mapped_to_certificate Especifica un usuario de base de datos asignado a un certificado. Database_user_mapped_to_asymmetric_key Especifica un usuario de base de datos asignado a una clave asimtrica. Database_user_with_no_login Especifica un usuario de base de datos sin entidad de seguridad de servidor correspondiente.

Importante En algunos casos, una combinacin de los permisos ALTER y REFERENCE podra permitir al receptor ver datos o ejecutar funciones no autorizadas. Por ejemplo, un usuario con el permiso ALTER en una tabla y el permiso REFERENCE en una funcin puede crear una columna calculada sobre una funcin y hacer que se ejecute. En este caso, el usuario tambin debe disponer del permiso SELECT en la columna calculada.

Una base de datos es un elemento protegible que contiene el servidor, que es su entidad primaria en la jerarqua de permisos. La mayora de permisos limitados y especficos que se pueden conceder para una base de datos se muestran en la siguiente tabla, junto con permisos ms generales que los incluyen por implicacin.
Permiso de base de datos ALTER ALTER ANY APPLICATION ROLE ALTER ANY ASSEMBLY ALTER ANY ASYMMETRIC KEY ALTER ANY CERTIFICATE ALTER ANY CONTRACT ALTER ANY DATABASE AUDIT ALTER ANY DATABASE DDL TRIGGER ALTER ANY DATABASE EVENT NOTIFICATION ALTER ANY DATASPACE ALTER ANY FULLTEXT CATALOG ALTER ANY MESSAGE TYPE ALTER ANY REMOTE SERVICE BINDING ALTER ANY ROLE ALTER ANY ROUTE ALTER ANY SCHEMA ALTER ANY SERVICE ALTER ANY SYMMETRIC KEY ALTER ANY USER Implcito en el permiso de base de datos CONTROL ALTER ALTER ALTER ALTER ALTER ALTER ALTER ALTER ALTER ALTER ALTER ALTER ALTER ALTER ALTER ALTER ALTER ALTER Implcito en el permiso de servidor ALTER ANY DATABASE CONTROL SERVER CONTROL SERVER CONTROL SERVER CONTROL SERVER CONTROL SERVER ALTER ANY SERVER AUDIT CONTROL SERVER ALTER ANY EVENT NOTIFICATION CONTROL SERVER CONTROL SERVER CONTROL SERVER CONTROL SERVER CONTROL SERVER CONTROL SERVER CONTROL SERVER CONTROL SERVER CONTROL SERVER CONTROL SERVER

AUTHENTICATE SERVER BACKUP DATABASE CONTROL CONTROL SERVER BACKUP LOG CONTROL CONTROL SERVER CHECKPOINT CONTROL CONTROL SERVER CONNECT CONNECT REPLICATION CONTROL SERVER CONNECT REPLICATION CONTROL CONTROL SERVER CONTROL CONTROL CONTROL SERVER CREATE AGGREGATE ALTER CONTROL SERVER CREATE ASSEMBLY ALTER ANY ASSEMBLY CONTROL SERVER CREATE ASYMMETRIC ALTER ANY CONTROL SERVER KEY ASYMMETRIC KEY ALTER ANY CREATE CERTIFICATE CONTROL SERVER CERTIFICATE CREATE CONTRACT ALTER ANY CONTRACT CONTROL SERVER CREATE ANY CREATE DATABASE CONTROL DATABASE CREATE DATABASE DDL ALTER ANY DATABASE CREATE DDL EVENT EVENT NOTIFICATION EVENT NOTIFICATION NOTIFICATION CREATE DEFAULT ALTER CONTROL SERVER CREATE FULLTEXT ALTER ANY FULLTEXT CONTROL SERVER CATALOG CATALOG CREATE FUNCTION ALTER CONTROL SERVER ALTER ANY MESSAGE CREATE MESSAGE TYPE CONTROL SERVER TYPE CREATE PROCEDURE ALTER CONTROL SERVER CREATE QUEUE ALTER CONTROL SERVER CREATE REMOTE ALTER ANY REMOTE CONTROL SERVER SERVICE BINDING SERVICE BINDING CREATE ROLE ALTER ANY ROLE CONTROL SERVER CREATE ROUTE ALTER ANY ROUTE CONTROL SERVER CREATE RULE ALTER CONTROL SERVER CREATE SCHEMA ALTER ANY SCHEMA CONTROL SERVER CREATE SERVICE ALTER ANY SERVICE CONTROL SERVER ALTER ANY SYMMETRIC CREATE SYMMETRIC KEY CONTROL SERVER KEY CREATE SYNONYM ALTER CONTROL SERVER CREATE TABLE ALTER CONTROL SERVER CREATE TYPE ALTER CONTROL SERVER CREATE VIEW ALTER CONTROL SERVER CREATE XML SCHEMA ALTER CONTROL SERVER COLLECTION DELETE CONTROL CONTROL SERVER AUTHENTICATE CONTROL

EXECUTE INSERT REFERENCES SELECT SHOWPLAN SUBSCRIBE QUERY NOTIFICATIONS TAKE OWNERSHIP UPDATE VIEW DATABASE STATE VIEW DEFINITION

CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL

CONTROL SERVER CONTROL SERVER CONTROL SERVER CONTROL SERVER ALTER TRACE CONTROL SERVER CONTROL SERVER CONTROL SERVER VIEW SERVER STATE VIEW ANY DEFINITION

Permisos El otorgante de permisos (o la entidad de seguridad especificada en la opcin AS) debe tener asignado el mismo permiso con GRANT OPTION o un permiso superior que implique el permiso que se va a otorgar. Si utiliza la opcin AS, se aplican los siguientes requisitos adicionales.
AS granting_principal Permiso adicional necesario Permiso IMPERSONATE para el usuario, pertenencia al rol fijo de base de datos db_securityadmin, pertenencia al rol fijo de base de datos db_owner o pertenencia al rol fijo de servidor sysadmin. Permiso IMPERSONATE para el usuario, pertenencia al rol fijo de base de datos db_securityadmin, pertenencia al rol fijo de base de datos db_owner o pertenencia al rol fijo de servidor sysadmin. Pertenencia al grupo de Windows, pertenencia al rol fijo de base de datos db_securityadmin, pertenencia al rol fijo de base de datos db_owner o pertenencia al rol fijo de servidor sysadmin. Pertenencia al rol fijo de base de datos db_securityadmin, pertenencia al rol fijo de base de datos db_owner o pertenencia al rol fijo de servidor sysadmin. Pertenencia al rol fijo de base de datos db_securityadmin, pertenencia al rol fijo de base de datos db_owner o pertenencia al rol fijo de servidor sysadmin. Permiso IMPERSONATE para el usuario, pertenencia al rol fijo de base de datos

Usuario de base de datos

Usuario de base de datos asignado a un inicio de sesin de Windows

Usuario de la base de datos asignado a un grupo de Windows

Usuario de base de datos asignado a un certificado

Usuario de base de datos asignado a una clave asimtrica Usuario de base de datos no asignado a una entidad de

seguridad del servidor

Rol de base de datos

Rol de aplicacin

db_securityadmin, pertenencia al rol fijo de base de datos db_owner o pertenencia al rol fijo de servidor sysadmin. Permiso ALTER para el rol, pertenencia al rol fijo de base de datos db_securityadmin, pertenencia al rol fijo de base de datos db_owner o pertenencia al rol fijo de servidor sysadmin. Permiso ALTER para el rol, pertenencia al rol fijo de base de datos db_securityadmin, pertenencia al rol fijo de base de datos db_owner o pertenencia al rol fijo de servidor sysadmin.

Los propietarios de objetos pueden conceder permisos para los objetos que poseen. Las entidades de seguridad que tienen el permiso CONTROL para un elemento protegible pueden conceder permisos para ese elemento. Los receptores del permiso CONTROL SERVER, como los miembros del rol fijo de servidor sysadmin, pueden conceder los permisos en cualquier elemento protegible en el servidor. Ejemplos A. Conceder el permiso para crear tablas En el siguiente ejemplo se concede el permiso CREATE TABLE para la base de datos AdventureWorks2008R2 al usuario MelanieK.
USE AdventureWorks2008R2; GRANT CREATE TABLE TO MelanieK; GO

B. Conceder el permiso SHOWPLAN para un rol de aplicacin En el siguiente ejemplo se concede el permiso SHOWPLAN para la base de datos AdventureWorks2008R2 al rol de aplicacin AuditMonitor.
USE AdventureWorks2008R2; GRANT SHOWPLAN TO AuditMonitor; GO

C. Conceder CREATE VIEW con GRANT OPTION En el siguiente ejemplo se concede el permiso CREATE VIEW para la base de datos AdventureWorks2008R2 al usuario CarmineEs con el derecho para conceder CREATE VIEW a otras entidades de seguridad.
USE AdventureWorks2008R2; GRANT CREATE VIEW TO CarmineEs WITH GRANT OPTION;

GO

También podría gustarte