Mòdul ASGBD

ASGBD - Usuaris i Permisos en Oracle

La Triada CID (Confidencialitat, Integritat, Disponibilitat) en Oracle

stop

La triada CID (Confidencialitat, Integritat i Disponibilitat) és un model de seguretat fonamental per garantir la protecció de la informació en qualsevol sistema informàtic, inclòs Oracle. Aquest model es fa servir per establir les bases de les polítiques de seguretat, i Oracle, com a sistema de gestió de bases de dades (SGBD), té diverses característiques i eines que permeten implementar-lo eficaçment.

1. Confidencialitat (Confidentiality)

La confidencialitat es refereix a la protecció de la informació per evitar que sigui accedida per usuaris no autoritzats. A Oracle, això es pot aconseguir mitjançant:

2. Integritat (Integrity)

La integritat de les dades fa referència a la seva exactitud, coherència i fiabilitat al llarg del temps. Per garantir-la en Oracle, es poden utilitzar diversos mecanismes:

3. Disponibilitat (Availability)

La disponibilitat fa referència a la capacitat de la base de dades per estar accessible i operativa en tot moment. Per assegurar la disponibilitat en Oracle, es poden utilitzar diversos mecanismes i tecnologies:

Resum

Implementar la triada CID en Oracle implica la combinació de múltiples mecanismes i eines que permeten protegir la informació:

Amb aquests mecanismes, Oracle permet als administradors de bases de dades protegir les dades i garantir que es compleixin les pràctiques de seguretat requerides per a una bona gestió de la informació.

👤 Usuaris en Oracle

Els usuaris permeten configurar el mecanisme de Confidencialitat, Identificant (nom d'usuari), autenticant (amb password, per exemple) i restringint l'accés a dades no permeses (amb els privilegis)

Un usuari pot fer i desfer dins del seu esquema, però NO pot fer res en un altre esquema. Llevat que se li atorgue algun permís o privilegi per tal menester

Què és un usuari?

Un usuari Oracle identifica una entitat que accedeix a la base de dades. Pot representar una persona, aplicació o procés.

stop

Quan es crea un usuari, també es crea automàticament el seu esquema (schema), que conté els seus objectes: taules, vistes, procediments, etc.

Si un usuari 'user1' vol accedir a un objecte d'un altre usuari 'user2', haurà de anteposar al nom del objecte , el nom del schema del propietari del objecte en el moment d'utilitzar la sentència SQL adequada.

Per exemple

-- Des d'user1, suposant que user1 té permis sobre table1 de user2....
SELECT * FROM user2.table1;

🔐 Autenticació d'usuaris

Tipus d'usuaris

Creació, modificació i baixa d'usuaris

  -- Crear usuari en una PDB  (cas més usual)
  CREATE USER ausias IDENTIFIED BY '1234';
  
  -- Crear usuari comú (en CDB)
  CREATE USER C##admin IDENTIFIED BY 'secure' CONTAINER=ALL;
  
  -- Modificar contrasenya
  ALTER USER ausias IDENTIFIED BY 'nova_clau';
  
  -- Eliminar usuari
  DROP USER ausias CASCADE;
  -- Borra usuari i tots els objectes del seu schema
  DROP USER ausias;   
  -- Donarà error si ausias te objectes en el seu schema
    

Atributs addicionals en la creació

  CREATE USER omar IDENTIFIED BY secret
  DEFAULT TABLESPACE users
  TEMPORARY TABLESPACE temp
  QUOTA UNLIMITED ON users
  PROFILE default;     

- QUOTA és obligatori si es volen inserir dades en les taules de dins de l'schema

🔑 Donar permisos de connexió

Un usuari no pot connectar si no té el privilegi CREATE SESSION:

(i inicialment, quan es crea l'usuari, no té el privilegi automaticament !!)

GRANT CREATE SESSION TO omar;

Estats dels comptes

Exemples de gestió:

  ALTER USER omar ACCOUNT LOCK;
  ALTER USER omar ACCOUNT UNLOCK;
  ALTER USER omar PASSWORD EXPIRE;
    

🔍 Consultes útils

  -- Usuaris existents
  SELECT username, account_status FROM dba_users;
  
  -- Esquema actiu
  SELECT user FROM dual;
  
  -- Paràmetres d'usuaris administratius
  SELECT * FROM v$pwfile_users;
    

Notes importants

Exemple complet: usuari operatiu

  CREATE USER pepe IDENTIFIED BY secret
  DEFAULT TABLESPACE tab_app
  QUOTA UNLIMITED ON tab_app
  PASSWORD EXPIRE;
  
  GRANT CREATE SESSION, CREATE TABLE TO pepe;
    

Exemple complet MINIM !

  CREATE USER pepe IDENTIFIED BY secret QUOTA 10M ON USERS;
  GRANT CREATE SESSION, CREATE TABLE TO pepe;
    

💬 Autenticació en multitenant (CDB/PDB)

  -- Connexió com SYSTEM a PDB1
  sqlplus system@localhost/pdb1
    

Vistes relacionades amb usuaris

Bones pràctiques

🔐 Bloquejar Usuaris i Forçar a Canviar Contrasenya en Oracle

Per bloquejar usuaris i forçar-los a canviar la seua contrasenya a Oracle, es poden fer servir diverses funcionalitats per gestionar les contrasenyes i els comptes d'usuari.

Un usuari bloquejat NO POT accedir al sistema i no pot canviar el estat per si mateix. Ho ha de sol·licitar al DBA

Un usuari amb la password expirada ( i en periode de gràcia) SI pot accedir, sempre que abans canvie la contrasenya expirada

Un usuari amb la password expirada i fora del periode de gràcia, NO pot accedir. Si vol accedir, ho ha de sol·licitar al DBA

Usuari amb contrasenya a punt de caducar (Període de gràcia imminent). Oracle pot permetre l'accés, però el sistema pot mostrar una advertència que la contrasenya caducarà en breu. Això depèn de la configuració del perfil.

1. Bloquejar / desbloquejar un Usuari en Oracle

Bloquejar un usuari:

ALTER USER <nom_usuari> ACCOUNT LOCK;

On <nom_usuari> és el nom de l'usuari que vols bloquejar.

Desbloquejar un usuari:

ALTER USER <nom_usuari> ACCOUNT UNLOCK;

2. Forçar un Usuari a Canviar la Contrasenya

Oracle permet forçar que un usuari canvie la seva contrasenya en el pròxim inici de sessió. Per fer-ho, s'utilitza l'ordre següent:

ALTER USER <nom_usuari> PASSWORD EXPIRE;

3. Combinació d'ordres per Bloquejar i Forçar el Canvi de Contrasenya

Si vols bloquejar un usuari i, a més, forçar-lo a canviar la contrasenya quan siga desbloquejat, pots utilitzar aquestes dues ordres:

ALTER USER <nom_usuari> ACCOUNT LOCK;
ALTER USER <nom_usuari> PASSWORD EXPIRE;

4. Configurar el Caducament Automàtic de Contrasenyes

Per configurar que Oracle force el canvi de contrasenya automàticament després d'un cert temps (per exemple, després de 30 dies), pots configurar la política de contrasenyes de la base de dades. Això es fa mitjançant l'atribut PASSWORD_LIFE_TIME del perfil d'usuari:

Els perfils es veuen en esta unitat, un poc més endavant...

ALTER PROFILE <nom_perfil> LIMIT PASSWORD_LIFE_TIME <dies>;

Exemple (per 30 dies):

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 30;

Això farà que les contrasenyes dels usuaris que tinguen aquest perfil caduquen després de 30 dies, forçant-los a canviar la contrasenya en el següent inici de sessió.

Aquests són els mecanismes bàsics per gestionar usuaris en Oracle, bloquejant-los i forçant-los a canviar les contrasenyes quan siga necessari.

5. Canvi de contraseña

5.1 Voluntariament

-- Desde usuari 'vicent'
ALTER USER vicent IDENTIFIED BY novapass;          
        

sql*plus i SQL Developer

sql*plus accepta el comando PASSWORD que inicia un script/conversa per canviar la contrasenya

SQL Developer te una opció en el menú desplegable de la connexió anomenada 'Restablecer Contraseña...'

5.2 No voluntariament ( contrasenya expirada )

Si l'usuari encara està en periode de gràcia, en entrar, sql*plus dona un error i demana nova contrasenya

ERROR:
ORA-28001: the password has expired

Cambiando la contrasenya para <nom_usuari>
        

En SQL Developer, igual, ens demana posar una nova contrasenya, però utilitzant GUI

6. Desconnectar un usuari que està connectat

Un usuari pot tindre varies connexions actives (que son les SESSIONS)

Hi ha dos maneres

Matar una sessió des d’SQL*Plus o qualsevol client

SELECT sid, serial#, username, status, machine
FROM v$session
WHERE username = 'NOM_USUARI';   --esbrina sid i serial#

ALTER SYSTEM KILL SESSION 'SID,SERIAL#';   -- Desconnecta
o
ALTER SYSTEM KILL SESSION 'SID,SERIAL#' IMMEDIATE;  

Si un usuari ha connectat amb el rol SYSDBA, no es visualitzarà el seu nom, sino SYSTEM

Matar la sessió directament des del sistema operatiu

Algunes vegades l’ordre anterior no desconnecta del tot (queda com KILLED). Llavors busques el procés OS:

SELECT s.sid, s.serial#, p.spid
FROM v$session s
JOIN v$process p ON s.paddr = p.addr
WHERE s.username = 'NOM_USUARI';

--  I al sistema operatiu (Unix/Linux):
kill -9 PID    --  On PID = SPID del procés Oracle.

🗝️ Permisos en Oracle

Què són els permisos (privilegis)?

Els permisos o privilegis són drets que Oracle atorga als usuaris per fer determinades accions sobre la base de dades: accedir, modificar, crear, administrar objectes o usuaris.

Tipus de permisos

Exemples de privilegis de sistema

Exemples de privilegis d'objecte

Assignació de privilegis

  -- Sistema
  GRANT CREATE SESSION TO joan;
  GRANT CREATE TABLE TO joan;
  
  -- Objecte
  GRANT SELECT, INSERT ON alumnes TO joan;
    

♻️ Revocar permisos

  -- Sistema
  REVOKE CREATE SESSION FROM joan;
  
  -- Objecte
  REVOKE INSERT ON alumnes FROM joan;
    

🌐 Propagació amb GRANT OPTION

Permet que un usuari que ha rebut un privilegi "sobre objecte" el puga concedir a un altre: (i també pot concedir el GRANT OPTION)

  GRANT SELECT ON alumnes TO joan WITH GRANT OPTION;
    

👉 No es pot usar WITH GRANT OPTION amb privilegis de sistema (com CREATE SESSION, CREATE TABLE, CREATE USER, etc.), WITH GRANT OPTION només es pot usar per a privilegis sobre objectes (taules, vistes, procediments, etc.).

Els privilegis de sistema es poden propagar amb WITH ADMIN OPTION

  GRANT CREATE SESSION TO joan WITH ADMIN OPTION;
    

Permet que un usuari que ha rebut un privilegi "de sistema" el puga concedir a un altre: (i també pot concedir el ADMIN OPTION)


👀 Consultes útils

  -- Privilegis de sistema atorgats
  SELECT * FROM dba_sys_privs WHERE grantee = 'JOAN';
  
  -- Privilegis d'objecte
  SELECT * FROM dba_tab_privs WHERE grantee = 'JOAN';
  
  -- Què puc fer?
  SELECT * FROM session_privs;
    

🧪 Exemple pràctic

  -- Crear usuari i donar accés bàsic
  CREATE USER marta IDENTIFIED BY 1234;
  GRANT CREATE SESSION, CREATE TABLE TO marta;
  
  -- Permetre a marta consultar alumnes
  GRANT SELECT ON alumnes TO marta;   -- es dona a marta permis per consultar taula alumnes (usuari propietari de la taula alumnes)
  -- 'o'
  GRANT SELECT ON joan.alumnes TO marta;
  -- es dona a marta permis per consultar taula alumnes de l'usuari joan
    

Permisos implícits

Si l'usuari “joan” rep el permís CREATE TABLE en Oracle i després crea la seua pròpia taula anomenada “clients”, joan té automàticament permisos totals sobre eixa taula que acaba de crear (INSERT, SELECT, DELETE, UPDATE)

Si un usuari té CREATE TABLE, pot crear taules al seu esquema i, per defecte, té tots els permisos DML sobre les taules que ell mateix crea

Si vol accedir o manipular dades en taules d'un altre esquema, cal que l'altre propietari (o un administrador) li concedeixca permisos com SELECT, INSERT, UPDATE, DELETE


Accés a objectes d'un altre usuari

Si un usuari 'user1' vol accedir a un objecte d'un altre usuari 'user2', haurà de anteposar al nom del objecte , el nom del schema del propietari del objecte en el moment d'utilitzar la sentència SQL adequada.

Per exemple

-- Des d'user1, suposant que user1 té permis sobre table1 de user2....
SELECT * FROM user2.table1;

Permisos UPDATE i DELETE

El permís que s'atorga sobre un objecte de ‘update' d'Oracle, necessita anar aparellat al permís de ‘select'. (També passa amb el permís ‘delete' )
❗ ORACLE no ho fa automàticament ❗

Si a un usuari se li atorga (grant) permís d'actualització sobre una taula que no es seua.

grant update on usuari1.taula1 to usuari2; 
i este usuari (usuari2) fa
update usuari1.taula1 set columna1=valor;
la sentència funcionarà. => L'actualització, s'aplica a tota la taula

Però, si intenta fer

update usuari1.taula1 set columna1=valor where columna2=valor2;
la sentència fallarà.
perquè?

Oracle necessita saber les dades de columna2 per poder realitzar l'actualització, i per poder conéixer eixes dades necessita de permís de ‘select'

Oracle Database necessita llegir les dades de la fila per a saber com modificar la fila per a reflectir els canvis. Si no es tenen els permisos de SELECT, l'actualització no es pot dur a terme correctament. De la mateixa manera li passa a les sentències DELETE


Privilegi SYSDBA

SYSDBA és el privilegi administratiu més alt que es pot tindre en una base de dades Oracle. No és un rol ordinari, sinó un privilegi especial d'autenticació que dona control total sobre la instància de la base de dades.

Què permet fer SYSDBA?

Com s'usa?

sqlplus usuari1@ip/freepdb1 as sysdba

SYSDBA té poder absolut: no té restriccions de seguretat normals. S'ha d'utilitzar només per a administració i tasques crítiques. Un usuari amb SYSDBA equival pràcticament a ser l'usuari SYS.

Distinció entre SYSDBA i SYSOPER


Consideracions importants

sys té el privilegi SYSDBA i també el SYSOPER
system NO té el privilegi SYSDBA
system NO té el privilegi SYSOPER

📘 Bones pràctiques

🎭 Rols en Oracle

Què és un rol?

Un rol és un conjunt de permisos agrupats baix un nom. Serveix per simplificar la gestió de privilegis, especialment en entorns amb molts usuaris.

En compte d'assignar 10 permisos a cada usuari, es crea un rol amb aquests permisos i s'assigna el rol.

Tipus de rols

🛠️ Crear i assignar rols

  -- Crear un nou rol
  CREATE ROLE gestor_aula;
  
  -- Concedir permisos al rol
  GRANT CREATE SESSION, CREATE TABLE TO gestor_aula;
  
  -- Assignar el rol a un usuari
  GRANT gestor_aula TO marta;

  -- Assignar un rol a un altre rol
  GRANT altre_rol TO gestor_aula;
    

Revocar rols

  REVOKE gestor_aula FROM marta;
    

Quan s'afegixen privilegis a un rol, tots els usuaris que tenen eixe rol adquireixen el nou privilegi de seguida, encara que ja estigueren connectats, o tinguen sessions obertes des de fa temps,

Oracle no necessita tancar ni reiniciar la sessió perquè el privilegi faça efecte.

Els privilegis no es carreguen només en establir la sessió, sinó que Oracle:

Comprova els privilegis d'accés dinàmicament quan el codi SQL s'executa.

Mira els privilegis disponibles a través de roles actius en la sessió.

Si el rol ja està actiu, el nou privilegi del rol passa a estar disponible a l'instant.

🔍 Consultes útils

  -- Rols assignats a un usuari
  SELECT * FROM dba_role_privs WHERE grantee = 'MARTA';
  
  -- Rols definits al sistema
  SELECT * FROM dba_roles;
  
  -- Privilegis d'un rol
  SELECT * FROM role_sys_privs WHERE role = 'GESTOR_AULA';
    

Exemple pràctic complet

  CREATE ROLE aplicacio_web;
  
  GRANT CREATE SESSION TO aplicacio_web;
  GRANT SELECT, INSERT, UPDATE ON alumnes TO aplicacio_web;
  
  CREATE USER webapp IDENTIFIED BY secret;
  GRANT aplicacio_web TO webapp;
    

Si a un usuari li assignes diversos rols, l'usuari rep la suma de tots els privilegis atorgats per cadascun d'eixos rols. i si un mateix privilegi està repetit en diversos rols, Oracle simplement detecta que el privilegi està concedit i l'usuari el té. No hi ha duplicació ni conflicte.

--- Quan s'assigna un rol a un usuari, l'usuari rep tots els privilegis del rol i Oracle no permet fer REVOKE d'un privilegi que prové d'un rol.

Els rols són objectes de la base de dades a nivell global, igual que els usuaris. No estan dins d'un esquema concret, sinó que existeixen a nivell de base de dades i qualsevol usuari els pot rebre.

Bones pràctiques

📐 Perfils en Oracle

Què és un perfil?

En Oracle, un perfil és un conjunt de restriccions i paràmetres que s'apliquen als usuaris de la base de dades. Aquests paràmetres permeten controlar l'ús de recursos del sistema (com el nombre màxim de sessions, temps connectat, etc.) i establir polítiques de seguretat sobre les contrasenyes.

En oracle hi ha un perfil predefinit. El perfil anomenat DEFAULT

Quan es crea un usuari, se li assigna un perfil per defecte -> DEFAULT

=> En oracle23 hi ha algun més ??

SQL> select * from dba_profiles where profile='DEFAULT';   

Un perfil té dos tipus/grups de paràmetres

Paràmetres de recursos

Els paràmetres de recursos limiten l'ús que pot fer un usuari del sistema. Alguns dels més comuns són:

=> Quin és el IDLE_TIME per defecte en Oracle23 ??

Paràmetres de contrasenya

Els paràmetres de contrasenya ajuden a reforçar la seguretat dels usuaris, control·lant aspectes com:

=> Quin és el PASSWORD_LIFE_TIME per defecte en Oracle23 ??
I el PASSWORD_GRACE_TIME ??

Crear i modificar perfils

Pots crear un perfil nou amb l'ordre CREATE PROFILE i modificar-lo amb ALTER PROFILE.

  -- Exemple de creació d'un perfil amb restriccions de recursos i contrasenya
  CREATE PROFILE perf-adm LIMIT
    SESSIONS_PER_USER     5
    CONNECT_TIME          120
    IDLE_TIME             30
    FAILED_LOGIN_ATTEMPTS 4
    PASSWORD_LIFE_TIME    165;
  
  -- Modificar un perfil per establir un temps de bloqueig de la contrasenya
  ALTER PROFILE perf-adm LIMIT PASSWORD_LOCK_TIME 5;
    

Assignar un perfil a un usuari

En crear o modificar un usuari, pots assignar-li un perfil per limitar els recursos i aplicar polítiques de seguretat:

  -- Crear un usuari amb un perfil específic
  CREATE USER enric IDENTIFIED BY secret
    DEFAULT TABLESPACE tab_app
    QUOTA UNLIMITED ON tab_app
    PROFILE perf-adm;
  
  -- O actualitzar un usuari existent per assignar-li un perfil
  ALTER USER enric PROFILE perf-adm;
    

Bones pràctiques

🔍 Consultes útils relacionades amb perfils

  -- Consultar els perfils definit per la base de dades
  SELECT * FROM dba_profiles ORDER BY profile;
  
  -- Consultar paràmetres de tipus PASSWORD en el perfil DEFAULT
  SELECT * FROM dba_profiles WHERE resource_type = 'PASSWORD';
  
  -- Consultar usuaris i els seus perfils
  SELECT username, profile FROM dba_users;
    

🔍 Esborrar perfils

DROP PROFILE nom_perfil;
     o
DROP PROFILE nom_perfil [CASCADE]; 

Especifiqueu CASCADE per desassignar el perfil dels usuaris a qui estigui assignat. Oracle Database assigna automàticament el perfil DEFAULT a aquests usuaris. Heu d'especificar aquesta clàusula per eliminar un perfil que està assignat actualment als usuaris

Resum

Els perfils en Oracle són eines fonamentals per controlar l'ús dels recursos i reforçar la seguretat dels comptes d'usuaris. Mitjançant la creació, modificació i assignació de perfils, es pot garantir que els usuaris compleixin amb les polítiques establertes, tot assegurant un rendiment òptim i la protecció de la base de dades.

👁️ Vistes com a Element de Seguretat en Oracle

Les vistes (views) en Oracle poden ser un element molt poderós per a la seguretat de les dades, ja que permeten controlar quines dades poden ser accessibles pels usuaris i com aquestes dades són presentades. Les vistes no emmagatzemen dades, sinó que són definicions de consultes SQL que es poden utilitzar com si foren taules normals. Això significa que les vistes permeten a l'administrador de bases de dades (DBA) establir un nivell de seguretat i restricció per a l'accés a la informació a través de consultes personalitzades.

Vistes com a element de seguretat a Oracle

A continuació es poden vore algunes de les principals maneres en què les vistes poden ser utilitzades per millorar la seguretat en Oracle:

1. Restricció d'Accés a Dades Sensibles

Descripció: Les vistes permeten crear consultes personalitzades que poden ocultar certes columnes o taules que contenen dades sensibles. En lloc de permetre que un usuari accedeixi directament a una taula, es pot crear una vista que exposi només una part de les dades.

CREATE VIEW vista_clients_completa AS
SELECT nom, adreca, telefon
FROM clients;

Avantatge de seguretat: Limita l'exposició de dades sensibles a només la informació necessària, millorant la seguretat de la informació confidencial.

2. Autenticació de Consultes

Descripció: Pots utilitzar vistes per garantir que només es poden realitzar consultes sobre un conjunt específic de dades segons el rol o els permisos d'un usuari. Això es fa mitjançant el control de permisos en les vistes.

GRANT SELECT ON vista_clients_completa TO usuari_x;

Avantatge de seguretat: Aquesta tècnica permet controlar l'accés a les dades a nivell d'usuari, garantint que només els usuaris autoritzats tinguin accés a les vistes que exposen les dades filtrades o restringides.

3. Control de Columnes

Descripció: Les vistes permeten ocultar columnes senceres d'una taula, cosa que és útil per amagar dades que no s'haurien de mostrar. Això és especialment útil quan les taules contenen dades sensibles, com ara contrasenyes, números de seguretat social, etc.

CREATE VIEW vista_usuaris AS
SELECT id, nom, correu
FROM usuaris;

Avantatge de seguretat: Permet amagar dades sensibles i garantir que només la informació necessària sigui accessible.

4. Control de les Consultes Realitzades

Descripció: Mitjançant la creació de vistes, es pot controlar exactament quines consultes són permeses i com són realitzades. Això permet als administradors establir regles de consulta que limitin l'accés a determinats conjunts de dades.

CREATE VIEW vista_transaccions_usuaris AS
SELECT transaccio_id, data, import
FROM transaccions
WHERE usuari_id = :usuari_id;

Avantatge de seguretat: Pot restringir l'abast de les dades consultades i garantir que els usuaris només obtinguin informació rellevant i personalitzada.

5. Vistes Amb Funcionalitat de Seguretat Basada en Rols

Descripció: Utilitzant vistes, pots aplicar seguretat a nivell de rols, permetent que només certs rols d'usuari puguin accedir a determinades dades. Per exemple, un DBA pot crear una vista per a usuaris normals que només mostri informació bàsica, mentre que un usuari amb un rol administratiu podria tenir accés a una vista més detallada.

CREATE VIEW vista_dades_normals AS
SELECT nom, adreça FROM clients;

CREATE VIEW vista_dades_administrador AS
SELECT * FROM clients;

L'usuari amb un rol normal només pot veure vista_dades_normals, mentre que l'usuari amb rol d'administrador té accés a vista_dades_administrador.

Avantatge de seguretat: Permet controlar l'accés a les dades basat en rols d'usuari, garantint que els usuaris només tinguin accés a la informació que necessiten.

6. Auditoria i Monitorització de Consultes

Descripció: Les vistes també poden ser útils per auditar i monitoritzar les consultes. Per exemple, pots crear una vista que permeta a l'usuari visualitzar només els canvis realitzats en la taula de transaccions en un període de temps determinat.

CREATE VIEW vista_transaccions_audit AS
SELECT transaccio_id, data, import, operacio
FROM transaccions_audit
WHERE data > '2024-01-01';

Avantatge de seguretat: Això permet monitoritzar l'activitat de la base de dades i detectar possibles accessos no autoritzats o activitats sospitoses.

Conclusions

Les vistes en Oracle són una eina molt potent per millorar la seguretat de les dades en una base de dades. Algunes de les maneres en què es poden utilitzar com a element de seguretat són:

Les vistes permeten personalitzar l'accés a la informació i garantir que només els usuaris autoritzats tinguen accés a dades crítiques.

👯‍♀️ Ús de Synonyms en Oracle

Un synonym (sinònim) en Oracle és un àlies o nom alternatiu per a un objecte de base de dades com una taula, vista, seqüència, procediment, funció, paquet o altre objecte. Els synonyms s'utilitzen per simplificar l'accés als objectes i millorar la seguretat.

Tipus de Synonyms

Beneficis de Seguretat i Usabilitat

Exemples d'ús

1. Crear un synonym privat

CREATE SYNONYM emp FOR empresa.empleats;

Ara, en lloc de fer servir empresa.empleats, l'usuari pot fer servir simplement emp.

2. Crear un synonym públic

CREATE PUBLIC SYNONYM emp FOR empresa.empleats;

Tots els usuaris poden accedir a la taula empleats com emp, sempre que tinguen permisos.

3. Eliminar un synonym

DROP SYNONYM emp;
DROP PUBLIC SYNONYM emp;

Consideracions de Seguretat

Conclusió

Els synonyms en Oracle són útils per simplificar noms d'objectes i ocultar detalls interns. Utilitzats correctament, poden millorar l'organització, la seguretat i la flexibilitat de les aplicacions que accedeixen a la base de dades.

🖊️ Altres recursos

🎯 Usuaris NO admin en Windows

🎯 Update i Select en ORACLE

🎯 Usuaris Comuns ORACLE

Seguretat en ORACLE