Eigentlich wollte ich nur per Skript eine 19c VPD Policy unter Oracle 23ai testen. Als privilegierter Benutzer erwartete ich keine Probleme. Und dann kam überraschend folgender Fehler: ORA-01031: insufficient privileges.
Bei genauer Analyse hatte der Benutzer die notwendigen Privilegien einschließlich das EXECUTE-Privileg für das Package. Aber leider reichte das bei Oracle 23ai nicht mehr. Es wird zusätzlich das neue Systemprivileg ADMINISTER ROW LEVEL SECURITY POLICY benötigt.
Beispiel mit einer VPD Policy:
Der Benutzer HANS hat die notwendigen Privilegen, z.B. das EXECUTE für DBMS_RLS.
SQL@PDB1> CONNECT HANS/<password>@PDB1
HANS@PDB1> BEGIN
DBMS_RLS.ADD_POLICY (object_schema => 'scott', object_name => 'dept',. . .)
ERROR at line 1:
ORA-01031: insufficient privileges
ORA-06512: at "SYS.DBMS_RLS", line 3
Hans erhält nun zusätzlich das Privileg ADMINISTER ROW LEVEL SECURITY POLICY.
SQL@PDB1> CONNECT SYS/<password>@PDB1 as sysdba
GRANT administer row level security policy to HANS;
SQL@PDB1> CONNECT HANS/<password>@PDB1
HANS@PDB1> BEGIN
DBMS_RLS.ADD_POLICY (object_schema => scott', object_name => 'dept',. . .)
PL/SQL procedure successfully completed.
Und schon kann Hans das Package erfolgreich ausführen.
Es gibt ab Oracle 23ai folgende neue Systemprivilegien:
| ADMINISTER ROW LEVEL SECURITY POLICY | DBMS_RLS PL/SQL package |
| ADMINISTER FINE GRAINED AUDIT POLICY | DBMS_FGA PL/SQL package |
| ADMINISTER REDACT POLICY | DBMS_REDACT PL/SQL package |
Die Vergabe des Systemprivilegs erfolgt pro Container (CDB oder PDB). Das Systemprivileg kann entweder direkt an einen NON-SYS Benutzer oder eine Rolle vergeben oder auf ein Schema beschränkt werden.
GRANT system_privilege TO NON-SYS Benutzer;
GRANT system_privilege ON SCHEMA <schema> TO NON-SYS Benutzer;
Dieses Beispiel zeigt, dass in der Datenbank 23ai verschiedene Security-Voraussetzungen hinzugefügt wurden. Bei Tests mit 23ai sollte immer geprüft werden, welche neuen Privilegien für die verschiedenen Aufgaben notwendig sind. Ein Blick in oradiff zeigt auch die neuen System-Privilegien.
→ siehe Abbildung rechts (zur Vegrößerung bitte anklicken)
Cornelia Heyde



