USER – SCHEMA – Create / Profile/ Get DDL / Roles / Privileges (system e object)
–> Script Testati su Oracle 11g <–
——————-
— CREATE USER —
——————-
——————-
create user pippo identified by xxx
default tablespace users
temporary tablespace temp
quota unlimited on users
profile default
account unlock;
default tablespace users
temporary tablespace temp
quota unlimited on users
profile default
account unlock;
grant connect, resource to pippo;
grant create database link,
create view,
create synonym,
create sequence,
alter session
to pippo;
create view,
create synonym,
create sequence,
alter session
to pippo;
————–
— Profilo —
————–
–>Il profilo di default assegnato ad ogni utenza è ‘DEAFAULT’ trovabile in dba_users:
select USERNAME, PROFILE
from dba_users
where username=upper(‘&nome_user’);
from dba_users
where username=upper(‘&nome_user’);
— >Per sapere I settaggi di un profile (in questo caso il profile ssegnato perDEFAULT a tutti gli schema)
SELECT RESOURCE_NAME,
LIMIT
FROM DBA_PROFILES
WHERE PROFILE=’DEFAULT’;
LIMIT
FROM DBA_PROFILES
WHERE PROFILE=’DEFAULT’;
— Per modificare il profile:
ALTER PROFILE
DEFAULT
LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED;
DEFAULT
LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED;
—————
— GET DDL —
—————
—————
–Dalla funzione dbms_metadata.get_granted_ddl return CLOB
set longchunksize 30000
set long 30000
show long
select dbms_metadata.get_ddl( ‘USER’, ‘XBSESDBO’ ) from dual
UNION ALL
select dbms_metadata.get_granted_ddl( ‘SYSTEM_GRANT’, ‘XBSESDBO’ ) from dual
UNION ALL
select dbms_metadata.get_granted_ddl( ‘OBJECT_GRANT’, ‘XBSESDBO’ ) from dual
UNION ALL
select dbms_metadata.get_granted_ddl( ‘ROLE_GRANT’, ‘XBSESDBO’ ) from dual;
set longchunksize 30000
set long 30000
show long
select dbms_metadata.get_ddl( ‘USER’, ‘XBSESDBO’ ) from dual
UNION ALL
select dbms_metadata.get_granted_ddl( ‘SYSTEM_GRANT’, ‘XBSESDBO’ ) from dual
UNION ALL
select dbms_metadata.get_granted_ddl( ‘OBJECT_GRANT’, ‘XBSESDBO’ ) from dual
UNION ALL
select dbms_metadata.get_granted_ddl( ‘ROLE_GRANT’, ‘XBSESDBO’ ) from dual;
———————————————————– Data Dictionary Roles / Privileges (system e object)—
———————————————————
———————————————————
dba_users –> visualizza gli schema di un database
dba_profiles –> visualizza I settaggi dei “profile”
dba_sys_privs –> system privileges granted to users and roles
dba_tab_privs –> object grants
dba_role_privs –> roles granted to all users and roles in the database
dba_tab_privs –> object grants
dba_role_privs –> roles granted to all users and roles in the database
altre..
DBA_COL_PRIVS
————————————–
— Elenco Privilegi sulle Tabelle —
————————————–
— Elenco Privilegi sulle Tabelle —
————————————–
set line 250
set pagesize 400
column GRANTOR format a20
column OWNER format a20
column PRIVILEGE format a25
select count(*) ,
OWNER ,
GRANTOR ,
GRANTEE ,
PRIVILEGE
from dba_tab_privs
where GRANTEE like ‘%PIPPO%’ –User / Ruolo che riceve la GRANT
set pagesize 400
column GRANTOR format a20
column OWNER format a20
column PRIVILEGE format a25
select count(*) ,
OWNER ,
GRANTOR ,
GRANTEE ,
PRIVILEGE
from dba_tab_privs
where GRANTEE like ‘%PIPPO%’ –User / Ruolo che riceve la GRANT
and PRIVILEGE like ‘SELECT%’ –Privilegio Concesso all’Oggetto — and owner = ‘USER_PROPRIETERIO_OGGETTO_GRANTATO’ — and TABLE_NAME = ‘NOME_TABELLA_GRANTATA’
— and GRANTOR = ‘NOME_UTENTE_CHE_HA_CONCESSO_LA_GRANT’
group by
OWNER,
GRANTOR ,
GRANTEE,
PRIVILEGE
;
OWNER,
GRANTOR ,
GRANTEE,
PRIVILEGE
;
—————————–
— Elenco di tutti i Ruoli —
—————————–RUOLI: Non hanno un proprietario, una volta creati (da utenze con I diritti per farlo (‘grant create role to pippo;’) se si ha l’admin option (per default lo ha l’utenza creatrice) possono essere concessi ad alltri utenti.
— Elenco di tutti i Ruoli —
—————————–RUOLI: Non hanno un proprietario, una volta creati (da utenze con I diritti per farlo (‘grant create role to pippo;’) se si ha l’admin option (per default lo ha l’utenza creatrice) possono essere concessi ad alltri utenti.
select *
from dba_roles
order by role
;
;
—————————————
— Ruoli assegnati agli Utenti/Ruoli —
—————————————
Elenca I Ruoli elargiti a tutti gli utenti/ruoli del database
–>Solo Ruoli Assegnati ad altri Ruoli
select * from DBA_ROLE_PRIVS
where GRANTEE not in (select username from dba_users)
order by GRANTEE
where GRANTEE not in (select username from dba_users)
order by GRANTEE
;
—————————— ———–
— System Privilege assegnati ai Ruoli —
—————————— ———–
Elenca I System Privileges elargiti agli User/Ruoli.
–>Solo System Privilege assegnati ai Ruoli
select * from DBA_SYS_PRIVS
where GRANTEE not in (select username from dba_users)
–and PRIVILEGE like ‘%EXEC%’
order by GRANTEE
;
where GRANTEE not in (select username from dba_users)
–and PRIVILEGE like ‘%EXEC%’
order by GRANTEE
;
—————————— —–
— RUOLI ASSEGNATI AGLI SCHEMA —
—————————— ——->Quntità Ruoli (vision generale)
select count(*), GRANTEE, ADMIN_OPTION
from dba_role_privs
where ADMIN_OPTION=’YES’
group by GRANTEE, ADMIN_OPTION
/–>Elenco per Schema
select GRANTED_ROLE, GRANTED_ROLE, DEFAULT_ROLE
from dba_role_privs
where GRANTEE=’&1′
/
— RUOLI ASSEGNATI AGLI SCHEMA —
——————————
select count(*), GRANTEE, ADMIN_OPTION
from dba_role_privs
where ADMIN_OPTION=’YES’
group by GRANTEE, ADMIN_OPTION
/–>Elenco per Schema
select GRANTED_ROLE, GRANTED_ROLE, DEFAULT_ROLE
from dba_role_privs
where GRANTEE=’&1′
/
—————————— —————————-
— Users a cui gli è stato concesso il ruolo di CONNECT —
—————————— —————————-
set linesize 175
column PATH_OF_CONNECT_ROLE_GRANT format a40
select * from DBA_CONNECT_ROLE_GRANTEES
order by GRANTEE
;
— Users a cui gli è stato concesso il ruolo di CONNECT —
——————————
set linesize 175
column PATH_OF_CONNECT_ROLE_GRANT format a40
select * from DBA_CONNECT_ROLE_GRANTEES
order by GRANTEE
;
—————————— ———————————-
— Visualizza Solo per i Ruoli a cui gli User hanno accesso —
—————————— ———————————-
— Visualizza Solo per i Ruoli a cui gli User hanno accesso —
——————————
Se l’interrogazione viene fatta da un utenza che ha i diritti di lettura sulla Data Dictionary, allora potrà visualizzarli tutti, altrimenti vedrà solo quelli di sua competenza.
ROLE_ROLE_PRIVS –> roles elargiti ad altri roles
ROLE_SYS_PRIVS –> system privileges grantate ai roles
ROLE_TAB_PRIVS –> table privileges grantate ai roles
ROLE_SYS_PRIVS –> system privileges grantate ai roles
ROLE_TAB_PRIVS –> table privileges grantate ai roles
——————-
— DEFAULT ROLE —
——————-
DEFAULT ROLE ALL — Solo I ruoli che sono stati elargiti all’utente sono abilitati per default quando l’utente stesso si college.
ALTER USER SCOTT DEFAULT ROLE ALL;
SQL> conn newuser/newuser
Connected.
SQL> select * from session_roles;ROLE
——————————
CONNECT
NEW_USERSQL> conn / as sysdba
Connected.
SQL> alter user newuser default role connect;
Connected.
SQL> select * from session_roles;ROLE
——————————
CONNECT
NEW_USERSQL> conn / as sysdba
Connected.
SQL> alter user newuser default role connect;
User altered.
SQL> conn newuser/newuser
Connected.
SQL> select * from session_roles;
ROLE
——————————
CONNECT