Utilización de sinónimos para compartir objetos

Cómo utilizar los sinónimos de Oracle para que un usuario pueda ver/utilizar objetos de un esquema que pertenezca a otro usuario.
Es algo muy sencillo y realmente útil. Lo único que hay que hacer es crear un sinónimo para cada objeto que queramos 'compartir', y después asignar los permisos que interese al esquema que quiere acceder al objeto.

-- Creación del sinónimo
CREATE  PUBLIC SYNONYM "MI_TABLA"
    FOR "YO"."MI_TABLA";

Utilizamos un sinónimo público para compartirlo para diferentes esquemas. La asignación de permisos sí que es específica para cada esquema que tenga que acceder al objeto

-- Asignación de permisos para el usuario EL
GRANT SELECT ON  "YO"."MI_TABLA" TO "EL";
GRANT UPDATE ON  "YO"."MI_TABLA" TO "EL";
GRANT INSERT ON  "YO"."MI_TABLA" TO "EL";
GRANT DELETE ON  "YO"."MI_TABLA" TO "EL";
-- Si se quiere dar acceso sólo de consulta a esta misma tabla para otro usuario, bastaría con hacer
GRANT SELECT ON  "YO"."MI_TABLA" TO "ELLA";

Ahora "EL" y "ELLA" ya pueden trabajar sobre "MI_TABLA" cada uno con los permisos que el propietario de la tabla ha decidido