Oracle Database
Sicurezza delle applicazioni reali
Ricerca…
introduzione
Oracle Real Application Security è stato introdotto in Oracle 12c. Riassume molti argomenti di sicurezza come User-Role-Model, Access Control, Application vs. Database, End-User-Security o Row-and Column Level Security
Applicazione
Per associare un'applicazione a qualcosa nel database ci sono tre parti principali:
Privilegio dell'applicazione: un privilegio dell'applicazione descrive i privilegi come SELECT
, INSERT
, UPDATE
, DELETE
, ... I privilegi dell'applicazione possono essere riepilogati come un privilegio aggregato.
XS$PRIVILEGE(
name=>'privilege_name'
[, implied_priv_list=>XS$NAME_LIST('"SELECT"', '"INSERT"', '"UPDATE"', '"DELETE"')]
)
XS$PRIVILEGE_LIST(
XS$PRIVILEGE(...),
XS$PRIVILEGE(...),
...
);
Utente dell'applicazione:
Utente dell'applicazione semplice:
BEGIN
SYS.XS_PRINCIPAL.CREATE_USER('user_name');
END;
Utente dell'applicazione di accesso diretto:
BEGIN
SYS.XS_PRINCIPAL.CREATE_USER(name => 'user_name', schema => 'schema_name');
END;
BEGIN
SYS.XS_PRINCIPAL.SET_PASSWORD('user_name', 'password');
END;
CREATE PROFILE prof LIMIT
PASSWORD_REUSE_TIME 1/4440
PASSWORD_REUSE_MAX 3
PASSWORD_VERIFY_FUNCTION Verify_Pass;
BEGIN
SYS.XS_PRINCIPAL.SET_PROFILE('user_name', 'prof');
END;
BEGIN
SYS.XS_PRINCIPAL.GRANT_ROLES('user_name', 'XSONNCENT');
END;
(opzionale:)
BEGIN
SYS.XS_PRINCIPAL.SET_VERIFIER('user_name', '6DFF060084ECE67F', XS_PRINCIPAL.XS_SHA512“);
END;
Ruolo dell'applicazione:
Ruolo dell'applicazione regolare:
DECLARE
st_date TIMESTAMP WITH TIME ZONE;
ed_date TIMESTAMP WITH TIME ZONE;
BEGIN
st_date := SYSTIMESTAMP;
ed_date := TO_TIMESTAMP_TZ('2013-06-18 11:00:00 -5:00','YYYY-MM-DD HH:MI:SS');
SYS.XS_PRINCIPAL.CREATE_ROLE
(name => 'app_regular_role',
enabled => TRUE,
start_date => st_date,
end_date => ed_date);
END;
Ruolo dell'applicazione dinamica: (viene abilitato dinamico in base allo stato di autenaticazione)
BEGIN
SYS.XS_PRINCIPAL.CREATE_DYNAMIC_ROLE
(name => 'app_dynamic_role',
duration => 40,
scope => XS_PRINCIPAL.SESSION_SCOPE);
END;
Ruoli dell'applicazione predefiniti:
Regolare:
-
XSPUBLIC
-
XSBYPASS
-
XSSESSIONADMIN
-
XSNAMESPACEADMIN
-
XSPROVISIONER
-
XSCACHEADMIN
-
XSDISPATCHER
Dinamica: (dipende dallo stato di autenticazione dell'utente dell'applicazione)
-
DBMS_AUTH
: (accesso diretto o altro metodo di autenticazione del database) -
EXTERNAL_DBMS_AUTH
: (accesso diretto o altro metodo di autenticazione del database e utente esterno) -
DBMS_PASSWD
: (accesso diretto con password) -
MIDTIER_AUTH
: (autenticazione tramite l'applicazione di livello intermedio) -
XSAUTHENTICATED
: (applicazione diretta o di livello intermedio) -
XSSWITCH
: (utente passato da utente proxy a utente dell'applicazione)