3.2. Las autorizaciones y desautorizaciones

Todos los privilegios sobre la base de datos los tiene su propietario, pero no es el único que accede a ésta. Por este motivo, el SQL nos ofrece sentencias para autorizar y desautorizar a otros usuarios.

1)  Autorizaciones

Para autorizar, el SQL dispone de la siguiente sentencia:

GRANT privilegios ON objeto TO usuarios
[WITH GRANT OPTION];

Donde tenemos que:

a)  privilegios puede ser:

•    ALL PRIVILEGES: todos los privilegios sobre el objeto especificado.

•    USAGE: utilización del objeto especificado; en este caso el dominio.

•    SELECT: consultas.

•    INSERT [(columnas)]: inserciones. Se puede concretar de qué columnas.

•    UPDATE [(columnas)]: modificaciones. Se puede concretar de qué columnas.

•    DELETE: borrados.

•    REFERENCES [(columna)]: referencia del objeto en restricciones de integridad. Se puede concretar de qué columnas.

bObjeto debe ser:

•    DOMAIN: dominio

•    TABLE: tabla.

•    Vista.

c)  Usuarios puede ser todo el mundo: PUBLIC, o bien una lista de los identificadores de los usuarios que queremos autorizar.

d)  La opción WITH GRANT OPTION permite que el usuario que autoricemos pueda, a su vez, autorizar a otros usuarios a acceder al objeto con los mismos privilegios con los que ha sido autorizado.

2)  Desautorizaciones

Para desautorizar, el SQL dispone de la siguiente sentencia:

REVOKE [GRANT OPTION FOR] privilegios ON objeto FROM
usuarios [RESTRICT|CASCADE];

Donde tenemos que:

a)
  privilegios, objeto y usuarios son los mismos que para la sentencia GRANT.

b)  La opción GRANT OPTION FOR se utilizaría en el caso de que quisiéramos eliminar el derecho a autorizar (WITH GRANT OPTION).

c)  Si un usuario al que hemos autorizado ha autorizado a su vez a otros, que al mismo tiempo pueden haber hecho más autorizaciones, la opción CASCADE hace que queden desautorizados todos a la vez.

d)  La opción RESTRICT no nos permite desautorizar a un usuario si éste ha autorizado a otros.