U mnie domyślnie system ma takie uprawnienia
select * from dba_sys_privs
where grantee = 'SYSTEM';
USERNAME PRIVILEGE ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
SYSTEM GLOBAL QUERY REWRITE NO
SYSTEM CREATE MATERIALIZED VIEW NO
SYSTEM CREATE TABLE NO
SYSTEM UNLIMITED TABLESPACE YES
SYSTEM SELECT ANY TABLE NO
czyli nie ma uprawnień CREATE VIEW ani CREATE ANY VIEW.
U Ciebie pewno jest podobnie.
W procedurach są brane pod uwagę tylko uprawnienia przypisane wprost, ale już nie poprzez rolę.
Role są brane pod uwagę tylko przy interaktywnej sesji oraz w procedurach utworzonych z dyrektywą AUTHID CURRENT_USER
Użytkownik SYSTEM posiada takie role:
select * from dba_role_privs
where grantee = 'SYSTEM';
GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
------------------------------ ------------------------------ ------------ ------------
SYSTEM AQ_ADMINISTRATOR_ROLE YES YES
SYSTEM CONNECT NO YES
SYSTEM DBA YES YES
Rola DBA pozwala tworzyć i kasować widoki (view)
select * from dba_sys_privs
where grantee = 'DBA' and privilege like '%VIEW%'
;
GRANTEE PRIVILEGE ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
DBA DROP ANY MATERIALIZED VIEW YES
DBA DROP ANY VIEW YES
DBA CREATE VIEW YES
DBA UNDER ANY VIEW YES
DBA ALTER ANY MATERIALIZED VIEW YES
DBA CREATE ANY VIEW YES
DBA MERGE ANY VIEW YES
DBA CREATE ANY MATERIALIZED VIEW YES
DBA CREATE MATERIALIZED VIEW YES
Na koniec generalna uwaga - w schematach SYS i SYSTEM nie należy tworzyć żadnych obiektów,
ani tym bardziej testować żadnych rzeczy. Przypadkowo coś skasujesz, zmienisz,
albo zapełnisz SYS/SYSTEM tablespace i kłopoty - grozi instalacja bazy od zera albo odtwarzanie z backupu.