column proxy_user format a30 wrap whenever sqlerror continue; whenever oserror continue; <> begin for getem in (select 'drop user ' || username || ' cascade ' as synt from dba_users where username in ('TABLEOWNER', 'YOU') ) loop dbms_output.put_line ('Clearing: ' || getem.synt); execute immediate getem.synt; end loop; end clear; / create user tableowner identified by values 'Sorry, you can''t log in'; --connect tableowner/"Sorry, you can''t log in"; -- --connect tableowner/"Sorry, you can't log in"; -- --CONNECT TABLEOWNER/"SORRY, YOU CAN''T LOG IN"; -- --CONNECT TABLEOWNER/"SORRY, YOU CAN'T LOG IN"; show user grant create session, create table, create view, create sequence, create procedure, create type to tableowner; create user you identified by yourself; grant create session to you; alter user tableowner grant connect through you; connect you[tableowner]/yourself select user, sys_context ('userenv', 'proxy_user') as proxy_user from dual; create table mine_all_mine (really varchar2(1)); connect sys as sysdba; select user from dual; select owner, table_name from dba_tables where table_name = 'MINE_ALL_MINE'; <> begin for getem in (select 'drop user ' || username || ' cascade ' as synt from dba_users where username in ('TABLEOWNER', 'YOU') ) loop dbms_output.put_line ('Clearing: ' || getem.synt); execute immediate getem.synt; end loop; end clear; / disconnect;