<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://mailnest.com/dbawiki/index.php?action=history&amp;feed=atom&amp;title=Create_user_as_a_copy_of_another</id>
		<title>Create user as a copy of another - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://mailnest.com/dbawiki/index.php?action=history&amp;feed=atom&amp;title=Create_user_as_a_copy_of_another"/>
		<link rel="alternate" type="text/html" href="https://mailnest.com/dbawiki/index.php?title=Create_user_as_a_copy_of_another&amp;action=history"/>
		<updated>2026-04-04T20:54:28Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.29.3</generator>

	<entry>
		<id>https://mailnest.com/dbawiki/index.php?title=Create_user_as_a_copy_of_another&amp;diff=322&amp;oldid=prev</id>
		<title>Stuart: Created page with &quot;Based on a function by Frank Naude &lt;pre&gt; set pages 0 feedback off verify off lines 500 set echo off set feedback off   accept oldname prompt &quot;Enter user to model new user to: ...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mailnest.com/dbawiki/index.php?title=Create_user_as_a_copy_of_another&amp;diff=322&amp;oldid=prev"/>
				<updated>2013-01-08T11:45:54Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;Based on a function by Frank Naude &amp;lt;pre&amp;gt; set pages 0 feedback off verify off lines 500 set echo off set feedback off   accept oldname prompt &amp;quot;Enter user to model new user to: ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Based on a function by Frank Naude&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set pages 0 feedback off verify off lines 500&lt;br /&gt;
set echo off&lt;br /&gt;
set feedback off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
accept oldname prompt &amp;quot;Enter user to model new user to: &amp;quot;&lt;br /&gt;
accept newname prompt &amp;quot;Enter new user name: &amp;quot;&lt;br /&gt;
-- accept psw     prompt &amp;quot;Enter new user&amp;#039;s password: &amp;quot;&lt;br /&gt;
&lt;br /&gt;
COLUMN  generated_password  NEW_VALUE  generated_password noprint;&lt;br /&gt;
select get_random_password(p_password_format=&amp;gt;&amp;#039;LLLNNN?L&amp;#039;) as generated_password  from dual;&lt;br /&gt;
prompt ###                                ________&lt;br /&gt;
prompt ### New Username is           ==&amp;gt;  &amp;amp;&amp;amp;newname.&lt;br /&gt;
prompt ### Password for this user is ==&amp;gt;  &amp;amp;&amp;amp;generated_password.&lt;br /&gt;
prompt ###                                ________&lt;br /&gt;
&lt;br /&gt;
spool create_user_&amp;amp;&amp;amp;newname..sql&lt;br /&gt;
-- Create user...&lt;br /&gt;
select &amp;#039;spool create_user_&amp;amp;&amp;amp;newname..log&amp;#039; from dual;&lt;br /&gt;
select &amp;#039;set echo on&amp;#039;     from dual;&lt;br /&gt;
select &amp;#039;set verify on&amp;#039;     from dual;&lt;br /&gt;
select &amp;#039;set feedback on&amp;#039;   from dual;&lt;br /&gt;
&lt;br /&gt;
select &amp;#039;create user &amp;amp;&amp;amp;newname identified by &amp;amp;&amp;amp;generated_password.&amp;#039;||&lt;br /&gt;
       &amp;#039; default tablespace &amp;#039;||default_tablespace||&lt;br /&gt;
       &amp;#039; temporary tablespace &amp;#039;||temporary_tablespace||&amp;#039; profile &amp;#039;||&lt;br /&gt;
       profile||&amp;#039;;&amp;#039;&lt;br /&gt;
from   sys.dba_users&lt;br /&gt;
where  username = upper(&amp;#039;&amp;amp;&amp;amp;oldname&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Grant Roles...&lt;br /&gt;
select &amp;#039;grant &amp;#039;||granted_role||&amp;#039; to &amp;amp;&amp;amp;newname&amp;#039;||&lt;br /&gt;
       decode(ADMIN_OPTION, &amp;#039;YES&amp;#039;, &amp;#039; WITH ADMIN OPTION&amp;#039;)||&amp;#039;;&amp;#039;&lt;br /&gt;
from   sys.dba_role_privs&lt;br /&gt;
where  grantee = upper(&amp;#039;&amp;amp;&amp;amp;oldname&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
-- Grant System Privs...&lt;br /&gt;
select &amp;#039;grant &amp;#039;||privilege||&amp;#039; to &amp;amp;&amp;amp;newname&amp;#039;||&lt;br /&gt;
       decode(ADMIN_OPTION, &amp;#039;YES&amp;#039;, &amp;#039; WITH ADMIN OPTION&amp;#039;)||&amp;#039;;&amp;#039;&lt;br /&gt;
from   sys.dba_sys_privs&lt;br /&gt;
where  grantee = upper(&amp;#039;&amp;amp;&amp;amp;oldname&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
-- Grant Table Privs...&lt;br /&gt;
select &amp;#039;grant &amp;#039;||privilege||&amp;#039; on &amp;#039;||owner||&amp;#039;.&amp;#039;||table_name||&amp;#039; to &amp;amp;&amp;amp;newname;&amp;#039;&lt;br /&gt;
from   sys.dba_tab_privs&lt;br /&gt;
where  grantee = upper(&amp;#039;&amp;amp;&amp;amp;oldname&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
-- Grant Column Privs...&lt;br /&gt;
select &amp;#039;grant &amp;#039;||privilege||&amp;#039; on &amp;#039;||owner||&amp;#039;.&amp;#039;||table_name||&lt;br /&gt;
       &amp;#039;(&amp;#039;||column_name||&amp;#039;) to &amp;amp;&amp;amp;newname;&amp;#039;&lt;br /&gt;
from   sys.dba_col_privs&lt;br /&gt;
where  grantee = upper(&amp;#039;&amp;amp;&amp;amp;oldname&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
-- Tablespace Quotas...&lt;br /&gt;
select &amp;#039;alter user &amp;amp;&amp;amp;newname quota &amp;#039;||&lt;br /&gt;
        decode(max_bytes, -1, &amp;#039;UNLIMITED&amp;#039;, max_bytes)||&lt;br /&gt;
        &amp;#039; on &amp;#039;||tablespace_name||&amp;#039;;&amp;#039;&lt;br /&gt;
from  sys.dba_ts_quotas&lt;br /&gt;
where username = upper(&amp;#039;&amp;amp;&amp;amp;oldname&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
-- Set Default Role...&lt;br /&gt;
set serveroutput on&lt;br /&gt;
declare&lt;br /&gt;
  defroles varchar2(4000);&lt;br /&gt;
begin&lt;br /&gt;
  for c1 in (select * from sys.dba_role_privs&lt;br /&gt;
              where grantee = upper(&amp;#039;&amp;amp;&amp;amp;oldname&amp;#039;)&lt;br /&gt;
                and default_role = &amp;#039;YES&amp;#039;&lt;br /&gt;
  ) loop&lt;br /&gt;
      if length(defroles) &amp;gt; 0 then&lt;br /&gt;
         defroles := defroles||&amp;#039;,&amp;#039;||c1.granted_role;&lt;br /&gt;
      else&lt;br /&gt;
         defroles := defroles||c1.granted_role;&lt;br /&gt;
      end if;&lt;br /&gt;
  end loop;&lt;br /&gt;
  dbms_output.put_line(&amp;#039;alter user &amp;amp;&amp;amp;newname default role &amp;#039;||defroles||&amp;#039;;&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
spool off&lt;br /&gt;
pause   Press cntrl-d if not correct, press &amp;lt;enter&amp;gt; to create the new user&lt;br /&gt;
&lt;br /&gt;
@create_user_&amp;amp;&amp;amp;newname..sql&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Stuart</name></author>	</entry>

	</feed>