Crear un usuari de consulta
El que en altres entorns podria resultar senzill, crear un usuari de consulta, en el mon d'Oracle no és obvi.
Per qué?
Doncs un usuari, no és només una connexió, si no que va lligat irremediablement a un esquema de la bbdd. Quan crees un usuari, crees per força un esquema associat, o sigui, un propietari d'una sèrie d'objectes que podrà crear (o no) aquest usuari.
Però molts cops el que volem és una entrada, una visió diferent a unes dades que ja existeixen, a uns objectes que són d'un altre propietari. I a més volem que la forma d'accés a aquests objectes sigui diferent de la que té el propietari, evidentment, si no ja ens valdria el usuari propietari. El cas més comú deu ser el desig de crear un usuari que només pugui consultar les dades d'un esquema però sense esborrar.
Una aproximació a aquest problema seria:
Per al segon inconvenient, una altra sol·lució (parcial) és, al crear l'usuari UCONSULTA, afegir el següent privilegi:
No m'agrada cap de les sol·lucions, la veritat.
p.d.: no em faig responsable dels problemes de seguretat que es puguin causar.
Però molts cops el que volem és una entrada, una visió diferent a unes dades que ja existeixen, a uns objectes que són d'un altre propietari. I a més volem que la forma d'accés a aquests objectes sigui diferent de la que té el propietari, evidentment, si no ja ens valdria el usuari propietari. El cas més comú deu ser el desig de crear un usuari que només pugui consultar les dades d'un esquema però sense esborrar.
Una aproximació a aquest problema seria:
- crear un esquema nou, per exemple UCONSULTA.
- des de l'esquema on tenim les dades (p.ex: UPROPIETARI) donar accés de consulta a totes les taules: GRANT SELECT ON
to UCONSULTA; - quan entrem amb el usuari UCONSULTA, podem fer select * from UPROPIETARI.
- el que faci anar l'usuari UCONSULTA ha de saber a priori el nom de les taules que vol accedir, doncs veurà els noms enlloc.
- s'ha de fer el GRANT de tots els objectes un a un o fer un script que ho faci automàticament.
- GRANT SELECT ANY DICTIONARY TO UCONSULTA
Per al segon inconvenient, una altra sol·lució (parcial) és, al crear l'usuari UCONSULTA, afegir el següent privilegi:
- GRANT SELECT ANY TABLE TO UCONSULTA
No m'agrada cap de les sol·lucions, la veritat.
p.d.: no em faig responsable dels problemes de seguretat que es puguin causar.
Publicar un comentario