Friday, 21 December 2018

     USER + PRIVILEGES + ROLES  ::



======== > Account Lock <===

select username,account_status from dba_users where account_status like '%LOCK%';

SQL > alter user XYZ account unlock;


 =====> Schema <============
 select owner, sum(bytes)/1024/1024/1024 schema_size_gig from dba_segments group by owner;

 select username from dba_users where username like '%XYZ%';

 alter session set current_schema=XYZ;

  select   sum(bytes)/1024/1024/1024 as size_in_gig, segment_type from  dba_segments where owner='XXX' group by segment_type;

 TABLE_NAME :
 ===========
 select TABLE_NAME ,STATUS,OWNER from dba_tables where OWNER='XXX'

 SQL> select TABLE_NAME ,STATUS,OWNER from dba_tables where table_name='XXX';

 * select OBJECT_NAME ,OWNER from dba_objects where OBJECT_NAME like '%LINK%' and owner='XXX'

  select segment_name,segment_type,bytes/1024/1024 MB from dba_segments where segment_type='TABLE' and segment_name='XXX';

 ============= USER CREATION + GRANT PRIVILIGES ===============

select username from dba_users where username like '%XXX%';
SQL> create user xxx identified by xxx;

SQL> grant create session to  xxxx;



>>>>>
    select role from dba_roles where role like '%READ_ONLY%';

>>>  select 'grant select on SHEMANAME.'||table_name|| '  to USERNAME;' from dba_tables where owner='XXXX';


======== USER MAP ==================

 select role from dba_roles where role like '%READ_ONLY%';

select * from DBA_ROLE_PRIVS where GRANTEE=upper('&user');
select grantee,table_name,privilege from dba_tab_privs where grantee='&rolename';

=========


The best way I believe is the take a spool of the grants and execute them once after the import is complete
==> ROLES
select 'grant '||PRIVILEGE||' on '||OWNER||'.'||TABLE_NAME||' to XXTEST;' from dba_tab_privs where GRANTEE='XXTEST' ;
 ===============================================

No comments:

Post a Comment