TS Quotas weg nach Enzug der DBA Rolle

Ja, ich weiß, dass DBA Rolle eh ein „no go“ ist – aber was soll man machen, wenn es jemand haben möchte.

Wichtig ist an dieser Stelle nur zu wissen, dass für einen User einzeln auf Tablespace vergebene Quotas mit dem Entzug der DBA Rolle verlohren gehen – no BUG is a Feautre.

SQL>grant dba to test identified by test;

Grant succeded.

SQL>alter user test QUOTA UNLIMITED ON users;

User altered.

SQL>select * from dba_ts_quota;

TABLESPACE_NAME USERNAME BYTES MAX_BYTES BLOCKS MAX_BLOCKS DRO
----------------------------------- -------------------- ---------- ---------- ---------- ---------- ---
USERS TEST 0 -1 0 -1 NO
SYSAUX FLOWS_FILES 0 -1 0 -1 NO
SYSAUX APPQOSSYS 0 -1 0 -1 NO

SQL>grant dba to test;

Grant succeeded.

SQL> select * from dba_ts_quotas;

TABLESPACE_NAME USERNAME BYTES MAX_BYTES BLOCKS MAX_BLOCKS DRO
----------------------------------- -------------------- ---------- ---------- ---------- ---------- ---
USERS TEST 0 -1 0 -1 NO
SYSAUX FLOWS_FILES 0 -1 0 -1 NO
SYSAUX APPQOSSYS 0 -1 0 -1 NO

SQL>revoke dba from test;

Revoke succeeded.

SQL> select * from dba_ts_quotas;
TABLESPACE_NAME USERNAME BYTES MAX_BYTES BLOCKS MAX_BLOCKS DRO
----------------------------------- -------------------- ---------- ---------- ---------- ---------- ---
SYSAUX FLOWS_FILES 0 -1 0 -1 NO
SYSAUX APPQOSSYS 0 -1 0 -1 NO

Das gleiche gilt auch für das System-Privileg UNLIMITED TABLESPACES:

SQL>grant unlimited tablespace to test;

Grant succeeded.

SQL>select * from  dba_sys_privs where GRANTEE = 'TEST';

GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
TEST                           UNLIMITED TABLESPACE                     NO

SQL>grant dba to test;

Grant succeeded.

SQL>select * from  dba_sys_privs where GRANTEE = 'TEST';

GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
TEST                           UNLIMITED TABLESPACE                     NO

SQL>revoke dba from test;

Revoke succeeded.

SQL>select * from  dba_sys_privs where GRANTEE = 'TEST';

no rows selected

Sagte ich nicht – man soll eine Rolle wie DBA nicht vergeben! Ach ja, das gleiche gilt auch für RESOURCE.

Schreibe einen Kommentar