CREATE OR REPLACE PROCEDURE whoowns
PL/SQL procedure successfully completed.
Перетранслируем процедуру для работы с правами запускающего:
CONNECT scott/tiger
CREATE OR REPLACE PROCEDURE whoowns
AUTHID CURRENT_USER
AS BEGIN DBMS_OUTPUT.PUT_LINE ( SYS_CONTEXT ( 'userenv', 'CURRENT_SCHEMA' ) ); DBMS_OUTPUT.PUT_LINE ( SYS_CONTEXT ( 'userenv', 'CURRENT_USER' ) ); DBMS_OUTPUT.PUT_LINE ( user ); END; /
Снова проверка:
SQL> SET SERVEROUTPUT ON SQL> EXECUTE whoowns
SCOTT SCOTT SCOTT
PL/SQL procedure successfully completed.
SQL> ALTER SESSION SET CURRENT_SCHEMA = system;
Session altered.
SQL> EXECUTE scott.whoowns
SYSTEM SCOTT SCOTT
PL/SQL procedure successfully completed.
SQL>
CONNECT / as sysdba Connected. SQL> SET SERVEROUTPUT ON SQL> EXECUTE scott.whoowns
SYS SYS SYS
PL/SQL procedure successfully completed.
SQL> ALTER SESSION SET CURRENT_SCHEMA = system;
Session altered.
SQL> EXECUTE scott.whoowns
SYSTEM SYS SYS
Примеры поясняют отличие атрибутов CURRENT_SCHEMA и CURRENT_USER контекста USERENV друг от друга и от системной переменной USER.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий