Tuesday, 14 April 2015

User Clone user management

--User Creation
select dbms_metadata.get_ddl( 'USER', '&&SOURCE_USER' ) from dual;

--Quotas:
select dbms_metadata.get_granted_ddl( 'TABLESPACE_QUOTA', '&&SOURCE_USER' ) from dual;

--Default role:
select dbms_metadata.get_granted_ddl( 'DEFAULT_ROLE', '&&SOURCE_USER' ) from dual;

--System grants:
select dbms_metadata.get_granted_ddl( 'SYSTEM_GRANT', '&&SOURCE_USER' ) from  dual;

--Object grants:
select dbms_metadata.get_granted_ddl( 'OBJECT_GRANT', '&&SOURCE_USER' ) from dual;

--Role grants:
select dbms_metadata.get_granted_ddl( 'ROLE_GRANT', '&&SOURCE_USER' ) from dual;

-- Generate any tablespace quotas from previous destination user
select 'alter user ' || username || ' quota '
     || decode(max_bytes,-1,'UNLIMITED',max_bytes) || ' on ' || tablespace_name || ';'
from dba_ts_quotas
where username=upper('&&source_user');

http://dba.stackexchange.com/questions/30337/duplicate-an-oracle-database-user
http://www.dba-oracle.com/t_cloning_oracle_user_id.htm

CREATE USER newdbuser
    IDENTIFIED BY out_standing
    DEFAULT TABLESPACE users
    QUOTA 10M ON users
    TEMPORARY TABLESPACE temp
    QUOTA 5M ON system 
    PROFILE app_user 
    PASSWORD EXPIRE;
Note - create a new user with PASSWORD EXPIRE, then the user's password must be changed before the user attempts to log in to the database. 

No comments:

Post a Comment