Skip to content

Commit 5e26681

Browse files
committed
Check for presence of utPLSQL can now be executed by SYS on Oracle 12c.
Resolves #3 User SYS cannot execute packages that run with `authid current user` as it is a potential backdoor for escalating privileges.
1 parent 4ca01f9 commit 5e26681

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

source/install.sql

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,23 @@ whenever sqlerror exit failure rollback
4242
whenever oserror exit failure rollback
4343

4444
prompt &&sep
45+
declare
46+
l_object varchar2(200);
4547
begin
46-
execute immediate q'[begin dbms_output.put_line('User &&utplsql_v2_owner owns utPLSQL - version '||&&utplsql_v2_owner..utplsql.version()); end;]';
48+
l_object := dbms_assert.sql_object_name('&&utplsql_v2_owner..utplsql');
49+
execute immediate q'[begin dbms_output.put_line('User &&utplsql_v2_owner owns utPLSQL v2'); end;]';
4750
exception
4851
when others then
4952
raise_application_error(-20000, 'User &&utplsql_v2_owner does not own utPLSQL v2 or current user('||user||') does not have privileges to access it.');
5053
end;
5154
/
5255

5356
prompt &&sep
57+
declare
58+
l_object varchar2(200);
5459
begin
55-
execute immediate q'[begin dbms_output.put_line('User &&utplsql_v3_owner owns '||&&utplsql_v3_owner..ut.version()); end;]';
60+
l_object := dbms_assert.sql_object_name('&&utplsql_v3_owner..ut');
61+
execute immediate q'[begin dbms_output.put_line('User &&utplsql_v3_owner owns utPLSQL v3'); end;]';
5662
exception
5763
when others then
5864
raise_application_error(-20000, 'User &&utplsql_v3_owner does not own utPLSQL v3 or current user('||user||') does not have privileges to access it.');

0 commit comments

Comments
 (0)