domingo, 8 de mayo de 2011

Privilegio para hacer referencia a tabla

Descripción gráfica foreign key

Cuando queremos crear una constraint foreign key en una tabla «tabla_o», que haga referencia a una tabla «tabla_r» que no pertenece al «usuario_o» propietario de «tabla_o», es decir, la tabla «tabla_r» a la que se hace referencia se encuentra en un esquema distinto al de «tabla_o», se necesita tener el privilegio explícito, es decir, que el «usuario_o» propietario de «tabla_o» debe tener explícito el permiso para poder hacer referencia a «tabla_r», ya que no es suya.

El «usuario_r» propietario de la tabla «tabla_r» o un usuario con privilegios para realizar el otorgamiento debe dar el permiso al «usuario_o» (propietario de «tabla_o»), ejecutando:
grant references on tabla_r to usuario_o;
Y si lo queremos quitar entonces ejecutamos:
revoke references on tabla_r from usuario_o cascade constraints;
Esta última instrucción quita el privilegio al «usuario_o» y elimina las foreign key que hacían referencia a «tabla_r».

No hay comentarios:

Publicar un comentario