DBMS_RLS Package

Is there any way I can use this package in the standard version.
It is the only 'extra' from the enterprise edition that i require and cannot justify the upgrade purely based on this.
Can the package be installed on the standard edition or does it require other packages only present within the enterprise edition.

Is there any way I can use this package in the
standard version.Depends how you feel about being in breach of your licence I guess.
Cheers, APC

Similar Messages

  • Install dbms_rls package

    Hi All,
    I want to use dbms_rls package in one of my applications and I dont know which script to apply to create the package. Kindly guide me. My DB version is 10.2.0.1.0.

    I hope you have enterprise edition, and its installed be default
    sql> desc dbms_rls
    If its not installed,
    run the below as SYS
    $ORACLE_HOME/rdbms/admin/dbmsrlsa.sql
    $ORACLE_HOME/rdbms/admin/prvtrlsa.plb

  • DBMS_RLS를 이용한 FINE GRANED ACCESS CONTROL (FGAC)의 개념 및 사용방법 (8I ~ 10G)

    제품 : ORACLE SERVER
    작성날짜 : 2005-11-23
    DBMS_RLS를 이용한 FINE GRANED ACCESS CONTROL (FGAC)의 개념 및 사용방법 (8I ~ 10G)
    =====================================================================
    PURPOSE
    여러 사용자가 같은 테이블을 조회하더라도, 각 사용자마다 자신의 정보만을
    표시해 준다거나, 특정 시간 범위 내에서는 다른 조건의 데이타만 보여지는 등
    row level의 security및 context를 지정하는 것이 8i부터
    FGAC (Fine Graned Access Control)을 통해 가능해졌다.
    이것은 VPD (Virtual Private Database)라는 용어로도 언급되어지는대,
    dbms_rls pacakge를 통해 policy 및 predicate을 생성하여 사용되어진다.
    Explanation & Examples
    FGAC는 row level로 security 및 context를 부여하는 것으로 결국 tranparent하게
    수행하는 SQL문장에 where절 조건을 추가하는 것이다.
    이렇게 추가되는 where 조건을 predicate이라고 부른다.
    1. FGAC의 간단한 예제
    scott의 emp table에 대해서 login한 username과 같은 ename에 대한 정보만을
    보여주는 예제를 제시한다. super_user라는 role을 가진 user에 대해서는
    전체 emp table이 모두 display되는 방법도 첨부한다.
    (1) dbms_rls package에 대한 실행 권한을 scott에게 부여한다.
    SQL> grant execute on dbms_rls to scott;
    (2) emp table의 ename에 해당하는 user몇명을 생성하고 권한을 부여한다.
    SQL> create user king identified by king;
    SQL> create user adams identified by adams;
    SQL> grant connect to king, adams, james;
    SQL> connect scott/tiger
    SQL> grant select on emp to king, adams, james, eykim;
    (3) scott user에서 다음과 같이 predicate을 포함한 function을 생성한다.
    SQL> connect scott/tiger
    SQL> create or replace function predicate
    (obj_schema varchar2, obj_name varchar2)
    return varchar2 is d_predicate varchar2(2000);
    BEGIN
    d_predicate := 'ename = sys_context (''USERENV'', ''SESSION_USER'')';
    RETURN d_predicate;
    END predicate;
    policy이 제대로 만들어졌는지 다음과 같이 scott user에서 확인한다.
    SQL> select predicate('dummy','dummy') from dual;
    PREDICATE('DUMMY','DUMMY')
    ename = sys_context ('USERENV', 'SESSION_USER')
    (4) 다음 문장을 system 혹은 scott user에서 실행한다.
    이때 parameter의 의미는, object_schema, object_name, policy_name,
    function_schema, policy_function 순이다. 이 외의 parameter가 더 있지만
    나머지는 default값을 이용한다.
    SQL> exec dbms_rls.add_policy('scott', 'emp', 'pol1', 'scott', 'predicate');
    기존의 같은 policy name이 존재하는 경우에는 다음과 같이 지우고 새로 생성할
    수 있다.
    SQL> exec dbms_rls.drop_policy( 'SCOTT', 'EMP', 'pol1' );
    (5) king/scott등 user로 접속하여 emp table을 조회해 본다.
    SQL> connect king/king
    SQL> select * from scott.emp;
    EMPNO ENAME JOB MGR HIREDATE SAL COMM
    DEPTNO
    7839 KING PRESIDENT 17-NOV-81 5000
    10
    SQL> connect scott/tiger
    SQL> select * from emp;
    EMPNO ENAME JOB MGR HIREDATE SAL COMM
    DEPTNO
    7788 SCOTT ANALYST 7566 19-APR-87 3000
    20
    (6) emp table의 ename에 속해있지 않은 user로 접속하여 조회해 본다.
    eykim user에 대해서 emp table의 select권한은 (2)번 단계에서 제공되었다.
    SQL> connect eykim/eykim
    SQL> select * from scott.emp;
    no rows selected
    (7) super_user라는 role을 생성하고 이 role을 가진 사용자는 모두 데이타가 조회
    가능하도록 policy function을 변경하여 본다.
    SQL> grant select on dba_role_privs to scott;
    SQL> create or replace function predicate (obj_schema varchar2, obj_name varchar2)
    return varchar2 is d_predicate varchar2(2000);
    counter number;
    begin
    select count(*) into counter
    from dba_role_privs
    where granted_role='SUPER_USER'
    and grantee = sys_context ('USERENV', 'SESSION_USER');
    if counter = 1 then
    d_predicate := '';
    else
    d_predicate := 'ename = sys_context (''USERENV'', ''SESSION_USER'')';
    end if;
    return d_predicate;
    end predicate;
    (8) king user에게 super_user role을 부여한 후 (5)번과 어떻게 결과가 다르게
    나오는지 확인한다.
    SQL> create role super_user;
    SQL> grant super_user to king;
    SQL> connect king/king
    SQL> select * from emp;
    EMPNO ENAME JOB MGR HIREDATE SAL COMM
    DEPTNO
    7369 SMITH CLERK 7902 17-DEC-80 800
    20
    7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300
    30
    7902 FORD ANALYST 7566 03-DEC-81 3000
    20
    7934 MILLER CLERK 7782 23-JAN-82 1300
    10
    14 rows selected.
    RELATED DOCUMENTS
    <Note 67977.1> Oracle8i Fine Grained Access Control - Working Examples

  • FINE GRAINED ACCESS CONTROL(FGAC)를 위한 DBMS_RLS.ADD_POLICY의 VERSION별 특징

    제품 : ORACLE SERVER
    작성날짜 : 2005-11-24
    FINE GRAINED ACCESS CONTROL(FGAC)를 위한 DBMS_RLS.ADD_POLICY의 VERSION별 특징
    =======================================================================
    PURPOSE
    row leve의 security 및 context관리 방법인 FGAC에 대한 간단한 개념 및 사용방법은
    <bul 23026>에 제시하였다.
    이 문서에는 FGAC를 위한 dbms_rls package의 8i ~ 10g까지의 version별 특징을
    정리하며, STATIC_POLICY와 POLCICY_TYPE parameter에 대해서는 예제를 이용하여
    자세히 살펴보도록 한다.
    Explanation & Examples
    dbms_rls.add_policy를 사용할 때 일반적으로 주는 value값의 예제는 다음과 같다.
    이중 대부분은 default값을 이용하여, 일반적으로는 앞의 5개의 parameter만
    value를 주면 된다.
    SQL> exec DBMS_RLS.ADD_POLICY ( -
    > object_schema => 'SCOTT', -
    > object_name => 'EMP', -
    > policy_name => 'POL1', -
    > function_schema => 'SYS', -
    > policy_function => 'PREDICATE', -
    > statement_types => 'SELECT', -
    > static_policy => false, -
    > policy_type => DBMS_RLS.DYNAMIC
    > long_predicate => false);
    1. FGAC의 version별 특징
    (1) sec_relevant_cols/sec_relevant_cols_opt : 10G
    위에 기술한 add_policy procedure의 parameter외에 10g에서 추가된
    parameter로 다음 두 parameter가 존재한다.
    이 parameter는 해당되는 column이 조회될때만 policy가 작동하게 하기 위한
    것으로 metalink.oracle.com site에서 <Note 250795.1> 를 살펴보면 사용 방법
    및 예제를 확인 가능하다.
    - sec_relevant_cols
    - sec_relevant_cols_opt
    (2) long_predicate : 10G
    default는 false이며, true로 지정하는 경우 predicate이 4000 bytes이상이
    될 수 있다.
    (3) statement_types : 10G부터 INDEX type추가
    9i까지는 SELECT, INSERT, UPDATE, DELETE에 대해서는 FGAC를 적용할 수
    있었으나, 10g부터는 INDEX type도 지정 가능하다.
    index를 지정하는 경우, function-based index 생성을 제한할 수 있으며,
    자세한 예제는 metalink.oracle.com site에서 <Note 315687.1>를 조회하여
    확인할 수 있다.
    (4) EXEMPT ACCESS POLICY 권한 : 9i
    특정 user가 모든 fine-grained access control policy의 영향을 받지
    않도록 하려면 exempt access policy권한을 grant하면 되며, 이것은 9i부터
    소개되었다.
    SQL> grant exempt access policy to scott;
    와 같은 방식으로 권한을 부여하면 되며, 이에 대한 자세한 예제는
    metalink.oracle.com site에서 <Note 174799.1>를 통해 확인 가능하다.
    (5) synonym에 대한 policy설정 : 9.2
    synonym에 대해서 VPD (Virtudal Private Database)에 대한 policy를 설정하는
    것이 가능해 졌으며 이에 대해서는 metalink.oracle.com에서 <Note 174368.1>를
    조회하여 자세한 방법 및 예제를 살펴볼 수 있다.
    (6) static_policy : 8.1.7.4
    static_policy paramter는 8i에는 없던 것으로 9i에서 도입되면서, 8.1.7.4에도
    반영되었다. default값은 false이며, 8173까지는 항상 false인 형태로 동작한다.
    즉, policy function이 매번 object를 access할때마다 실행된다.
    8.1.7.4부터는 이 parameter를 true로 설정할 수 있는대, 이렇게 되면
    해당 session에서 policy function이 한번 실행되고 그 function이 shared pool에
    cache되어 있으면 재실행없이 그대로 사용된다.
    10g부터는 (7)번에 설명하는 policy_type parameter가 추가되어,
    이 parameter에 true로 지정하는 대신, static_type은 false로 두고,
    policy_type을 dbms_rls.static 으로 지정하면,
    9i와 8174에서 static_policy를 true로 한것과 같은 결과가 나타난다.
    (7) policy_type: 10g
    다음과 같이 5가지 value가 가능하며, 이 중 default는 dynamic이다.
    - STATIC
    policy fuction에 포함된 predicate이 runtime환경에 따라 다른 결과를 내지
    않는 경우 사용하게 된다. 예를 들어 sysdate의해 다른 결과를 return하는
    경우에는 사용하면 사용하면 문제가 될 수 있다.
    static을 사용하는 경우 policy function은 한번 실행되어 SGA에 올라온 다음
    이후 같은 session에서 같은 object를 사용시에는 재실행 없이 해당 predicate의
    결과를 그대로 사용한다.
    - SHARD_STATIC
    STATIC과 같으나, 이 값은 다른 object에 대해서도 같은 predicate function이
    사용되는 경우, 먼저 cache된 predicate을 찾아서 있으면 그 값을 이용한다.
    STATIC의 경우는 다른 object 사이에서는 공유하지 않으며 같은 object에
    대해서만 cache된 값을 사용한다.
    - CONTEXT_SENSITIVE
    한 session에서 context가 변경되면 그때 predicate를 재 실행시킨다.
    WAS(web application server)를 사용하는 경우 connection pooling방법을
    기본적으로 사용하는대, 이 경우 하나의 session을 여러 사용자가 이어서
    교대로 사용하는 방식이 된다. 이 경우 middle tier단에서 context를 설정해
    주면 context가 변경될때마다 predicate를 새로 실행시켜 변경된 sysdate나
    session_user등의 값을 다시 계산하게 되는것이다.
    jdbc에서 context설정에 관한 예제는 metalink.oracle.com에서
    <Note 110604.1>에서 확인가능하다.
    - SHARED_CONTEXT_SENSITIVE
    context_sensitive와 동일하며, 단 shared_static과 마찬가지로 여러 object에
    대해서 같은 predicate을 사용하는 경우 다른 object에 대한 같은 predicate이
    cache되어 있는지를 먼저 살펴본다.
    존재하면 session private application context가 변경되기 전까지 그 predicate의
    결과를 그대로 사용한다.
    - DYNAMIC
    이 값이 default값이다. 즉, predicate function이나 시스템이나 환경에
    영향을 받는다고 판단하여 statement가 실행될때마다 매번 predicate function을
    재 실행하여 환경에 맞는 값을 return하여 준다.
    아래에서 sysdate 값에 따라 다른 결과를 return하게 되어 있는
    predicate을 이용한 예제를 통해 정확한 메카니즘을 확인한다.
    2. static_policy 및 policy_type의 value에 따른 policy function의 작동예제
    (a) STATIC_POLICY => TRUE and POLICY_TYPE => NULL
    (1) 기존에 pol1 policy가 존재하는 경우 다음과 같이 drop시킨다.
    SQL> exec DBMS_RLS.DROP_POLICY ('SCOTT', 'EMP','POL1');
    (2) 다음과 같이 predicate function을 scott user로 만들어둔다.
    SQL> create or replace function PREDICATE (obj_schema varchar2, obj_name varchar2)
    2 return varchar2 is d_predicate varchar2(2000);
    3 begin
    4 if to_char(sysdate, 'HH24') >= '06' and to_char(sysdate, 'MI')<'05' then
    5 d_predicate := 'ename = sys_context (''USERENV'' , ''SESSION'');
    6 else d_predicate := 'sal>=3000';
    7 end if;
    8 return d_predicate;
    9 end predicate;
    10 /
    (3) pol1을 새로 add시킨다.
    SQL> exec DBMS_RLS.ADD_POLICY ( -
    object_schema => 'SCOTT', -
    object_name => 'EMP', -
    policy_name => 'POL1', -
    function_schema => 'SCOTT', -
    policy_function => 'PREDICATE', -
    statement_types => 'SELECT', -
    static_policy => TRUE, -
    policy_type => NULL);
    (4) adams user에서 scott.emp를 조회해 본다.
    단 다음과 같이 scott.emp에 대한 select권한을 king에게 주어야 한다.
    SQL>grant select on emp to king;
    SQL>!date
    Thu Nov 24 14:01:13 EST 2005
    SQL> connect king/king
    SQL> select * from scott.emp;
    EMPNO ENAME JOB MGR HIREDATE SAL COMM
    DEPTNO
    7839 KING PRESIDENT 17-NOV-81 5000
    10
    5분이후가 되어 predicate function의 if조건을 만족하지 않아도,
    king user는 같은 값을 emp table에 대해서 return한다.
    SQL>!date
    Thu Nov 24 14:10:13 EST 2005
    SQL> connect king/king
    SQL> select * from scott.emp;
    EMPNO ENAME JOB MGR HIREDATE SAL COMM
    DEPTNO
    7839 KING PRESIDENT 17-NOV-81 5000
    10
    (b) STATIC_POLICY => FALSE and POLICY_TYPE => DBMS_RLS.DYNAMIC
    (1) 기존의 policy를 다음과 같이 drop시킨다.
    SQL> exec DBMS_RLS.DROP_POLICY ('SCOTT', 'EMP','POL1');
    (2) pol1을 새로 add시키는대 이대 static_policy와 policy_type을 다음과 같이
    변경한다.
    SQL> exec DBMS_RLS.ADD_POLICY ( -
    object_schema => 'SCOTT', -
    object_name => 'EMP', -
    policy_name => 'POL1', -
    function_schema => 'SCOTT', -
    policy_function => 'PREDICATE', -
    statement_types => 'SELECT', -
    static_policy => flase, -
    policy_type => dbms_rls.dynamic);
    (3) king user에서 조회해본다.
    predicate function은 위의 2-(a)에서 실행한 것을 그대로 사용한다.
    즉 (a)를 실행하지 않은 경우, 조회전에 (a)-(2)번을 실행해야 한다.
    SQL>!date
    Thu Nov 24 15:01:13 EST 2005
    SQL> connect king/king
    SQL> select * from scott.emp;
    EMPNO ENAME JOB MGR HIREDATE SAL COMM
    DEPTNO
    7839 KING PRESIDENT 17-NOV-81 5000
    10
    5분 이후가 되어 다시한번 king user에서 실행해본다.
    SQL>!date
    Thu Nov 24 15:10:13 EST 2005
    SQL> select * from scott.emp;
    EMPNO ENAME JOB MGR HIREDATE SAL COMM
    DEPTNO
    7788 SCOTT ANALYST 7566 19-APR-87 3000
    20
    7839 KING PRESIDENT 17-NOV-81 5000
    10
    7902 FORD ANALYST 7566 03-DEC-81 3000
    20
    RELATED DOCUMENTS
    <Note 281970.1> 10g Enhancement on STATIC_POLICY with POLICY_TYPE Behaviors
    in DBMS_RLS.ADD_POLICY Procedure
    <Note 281829.1> Evolution of Fine Grain Access Control FGAC Feature From 8i
    to 10g

    first you could use default column values, not a trigger, which is more expensive.
    if your apps already assumes full access to table to get max id ( another RT ), this is bad. Current RLS can not really help if you can not change the apps because of this flaw logic ( you can store the maxid anywhere, why scanning the whole table to find it )

  • Populating the cache with VPD tables fails

    Using the Add Tables wizard I am trying to add tables to an Oracle Database cache. The tables have had RLS policies applied using the DBMS_RLS package. The Add Tables wizard fails with an ORA-28112 error (failed to execute policy function).
    Are there any known problems with cacheing tables of a virtual private database?
    Of course we want to cache an entire table, not just a portion as defined by that table's security policy. We have a procedure call that can cause the security policy to return a null predicate (effectively turning off security for all tables). We have set up a logon trigger to run this procedure for the user that populates the cache (we have done this successfully for other users), but we still get the error.
    Any help?
    Cache system:
    SPARC/Solaris 8
    9iAS 1.0.2.1
    Oracle EE 8.1.7.0
    Origin database:
    SPARC/Solaris 8
    Oracle EE 8.1.7.0
    Thanks,
    Steve

    Steve,
    In my opinion you should look first into the trace files. They are generally located under
    USER_DUMP_DEST directory. I believe that this error normally generates a trace file. So in the trace file you can see that it was trying to do and what happened. Also this may be happening due to some permission problems as well e.g. logged user versus policy user etc.
    HTH
    Prakash
    null

  • Oracle Database VM Template - too many issues

    Just wanted to offer my experience with the Oracle VM Template, specifically for 64-bit Oracle Database 11g (11.1). We decided to try out Oracle VM and the templates on a new server, we thought the promise of the templates could drastically decrease our time spent installing and setting up new boxes.
    Setting up the template and getting it running was a breeze, although Oracle could have better documented things. Some passwords and important steps were left out that I had to figure out after the fact.
    The real nightmare is the Oracle database installation it comes with. I guess they call this an OEM installation - but it's complete crap. Nothing really works like it should, and I found it to be a lost-cause trying to get it to work after awhile. Enterprise Manager comes disabled - what kind of database installation is this without enterprise manager? I guess they think everyone is using Grid Control - although I'm not even convinced Grid Control would have worked with all the issues going on.
    I spent a day trying configure the installation to get things working, then realized packages were missing, needed for anything other than the database engine to run, due to the stripped version of oracle linux the template uses.
    None of this was documented or explained at all. There's nothing on metalink..pretty much nothing. If you want a simple database that you can connect to and run sql queries through sql plus, this might just work. But it's far from a typical production setup. I would steer clear of this.

    Hi there,
    VPD (Virtual Private Database) is a feature of the Oracle Enterprise Edition:
    http://www.oracle.com/technology/deploy/security/database-security/virtual-private-database/index.html
    It's in the dbms_rls package.
    HTH, Peter

  • Help With FGAC (VPD, RLS...)

    Hi all.
    I'm trying to create a Discoverer Trigger to implement FGAC. The point is:
    Discoverer DEMANDS you to create a DB function without any argument, returning integer (that won't be used anywhere), and register it in Disco. Adm. Edition. This is the easy part.
    Then I created two db. functions. The first one configures Policies (INFO_SEC). The second one (this is the one I try to invoke in discoverer - EUL_TRIGGER$POST_LOGIN), simply creates the policy using DBMS_RLS package.
    SQL> create or replace function info_sec( p_schema in varchar2) return varchar2
      2  as
      3  v_user varchar2(30);
      4  begin
      5  select sys_context('USERENV', 'SESSION_USER')
      6   into v_user
      7  FROM DUAL;
      8    if (v_user = 'DWH_ADMIN' ) then
      9      return '';
    10    else
    11      return 'upper(nm_emp) = '||v_user;
    12    end if;
    13  end;
    14  /
    Function created.
    SQL> create or replace FUNCTION EUL_TRIGGER$POST_LOGIN RETURN INTEGER
      2  as
      3  begin
      4  dbms_rls.add_policy
      5  ( object_schema   => 'DWH_ADMIN',
      6  object_name     => 'EMP_T',
      7  policy_name     => 'POL_EMP',
      8  function_schema => NULL,
      9  policy_function => 'INFO_SEC',
    10  statement_types => 'select, insert, update, delete' ,
    11  update_check    => TRUE );
    12   RETURN(10000);
    13  end;
    14  /
    Function created.
    SQL> select EUL_TRIGGER$POST_LOGIN FROM DUAL;
    select EUL_TRIGGER$POST_LOGIN FROM DUAL
    ERROR at line 1:
    ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML
    ORA-06512: at "SYS.DBMS_RLS", line 308
    ORA-06512: at "DWH_ADMIN.EUL_TRIGGER$POST_LOGIN", line 4I understand this is due to the insert that dbms_rls tries to perform in order to create the policy.
    My question is if anyone has an alternative for setting this using pl/sql. I need to set the RLS policy in discoverer only, so, i MUST use Discoverer Triggers.
    If you need more info about Discoverer Triggers, you cand find it in:
    http://www.huihoo.com/oracle/docs/B25016_04/doc/dl/bi/B13916_04/appendix_b.htm
    Anything you guys input here will be highly appreciate!
    Regards,
    Marcos

    You do not want any part of a system which intends to apply different FGAC policies to the same Oracle user based on the application they are using. Assuming you managed to set things up so that each application was setting up its own FGAC policy, FGAC policies apply to the instance. So the policy that would apply to the Discoverer session, for example, could change when some other application created a session and set its own policy. This is a disaster waiting to happen.
    Your policy function could look at information about the session to try to determine the application being used and tailor the policy accordingly. This is generally a bad idea since this information is being passed in by the client, meaninging that it is relatively easy to spoof a different application.
    Justin

  • Row and Column Level Select Permission

    Hello Friends,
    I am using Oracle Oracle9i Enterprise Edition Release 9.2.0.1.0 and Windows XP. I have two questions. How to set :
    1. Row Level Select Permission?
    2.Column Level Select Permission?
    1. I have a table having 100 records in it. I don’t want to allow all the user to see them; means, if user1, user2 and user3 are going to select * from mytable then only they can get all the rows; while other users (including sys) should not able to get all rows, they should be capable of from 11th record.
    Though it can be managed by using another table, but I am just finding the other solution.
    2. Likewise, if I don’t want to allow to fetch all the columns; suppose column4 is having confidential info and only be visible by user1,user2 and user3 only, not by any othr user; what should I do?
    Please guide and help me.
    Regards

    You would need to use Virtual Private Database (VPD)/ row level security (RLS) to apply row-level security policies to the table. The DBMS_RLS package is used for this
    http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_rls.htm#sthref6168
    Unfortunately, column-level security wasn't available in 9.2. You would need to upgrade to Oracle 10g to get that functionality. Before that, you would have to create views that selected appropriate subsets of columns and grant permissions on those views to different users.
    Justin

  • Row-Level Security

    Hi.
    Currently we are running oracle 8.0.5 (client/server mode). We will very soon swith to 9iAS 3-tier web interface with oracle8i database, but before that we would like to know if row-level security or VPD is also supported by oracle8i database.
    People here, in my company, still don't have the full picture about oracle9i and they prefer to install oracle8i for stability reasons. Do you recommend us to go for oracle9i instead?

    Hi,
    Row-level security is very much supported in
    8i (8.1.6.x) using the dbms_rls package.
    You can search the documentation on OTN for examples and more information. A note of caution, be careful where and how you plan to use it, due to performance implications, expecially if you are trying to filter a large number of rows.

  • How to hide rows?

    Hello folks,
    I just would like to know that how to hide rows except dbms_rls package? I mean, it has been said that I can hide rows to create views but lets said that I have got 200 students and each student can see only their rows in students table, in that scenerio I have to create 200 views, isn't it? I just would like to learn that how to hide rows with using views? Do you have any ideas?
    Note: I know dbms_rls package, except this solution I am tryin to find onather solution.
    Thanks a lot.

    Hi,
    Polat wrote:
    Hello folks,
    I just would like to know that how to hide rows except dbms_rls package? I mean, it has been said that I can hide rows to create views but lets said that I have got 200 students and each student can see only their rows in students table, in that scenerio I have to create 200 views, isn't it? No! As you realized, that's not practical.
    If every student is a separate Oracle user, the USER fucntion will return the name of the current user. A view definition can reference that function, like this:
    CREATE OR REPLACE VIEW view_x
    AS
    SELECT   *
    FROM    table_x
    WHERE   student_account  = USER;If you logged in to Oracle as POLAT, then the view will contain only rows where student_account='POLAT'.
    If you logged in to Oracle as SYSTEM, then the view will contain only rows where student_account='SYSTEM'.
    If students do not have thier own Oracle accounts, then they are probably authenitcated by some procedure in your package. That procedure can set a SYS_CONTEXT variable, or write data to a global temporary table, which you can then use instead of the USER function in view definitions.
    Note: I know dbms_rls package, except this solution I am tryin to find onather solution.Why can't you use dbms_rls, or why don't you want to use it? It's a very powerful tool, and not vey hard to use.
    I'm not saying there's never a good reason not to use dbms_rls; I'm just asking if you have one.
    I hope this answers your question.
    If not, give a specific example of what you want. Post CREATE TABLE and INSERT statements for some sample data for all tables involved. Identify 2 or 3 different students, and show what the contents of the view should be for each student, given the same sample data. If students do not log in to Oracle with their own usernames, then explain how you know which student is currently logged in.

  • Question: 9i- 10g

    Hi all,
    What does anyone know or have an opinion regarding 10g's ability with Virtual Private Databases/Row level security and Unix based servers providing client-server forms and reports services to browser based windows and unix clients?
    My organisation has been stuck in Forms 6 land because of heavy limitations of Forms 9's ability to handle row level security in this situation and I was curious to know if anyone has upgraded to 10g and resolved any issues in that regards.
    Thanks all.

    This is another article:
    TECHNOLOGY: Security
    Keeping Information Private with VPD
    By Arup Nanda
    Oracle's row-level security gives users their own virtual private databases.
    Ensuring appropriate information privacy is a pressing concern for many businesses today, given privacy legislation such as the United States' HIPAA (Health Insurance Portability and Accountability Act), Gramm-Leach-Bliley Act, Sarbanes-Oxley Act, and the EU's Safe Harbour Law. Other privacy mandates, such as Visa's Cardholder Information Security Program (CISP), also require businesses to ensure that access to information is tightly controlled.
    Oracle has always included the ability to grant (or deny) users access to database objects, but these privileges are defined at the object level—for an entire table, not for specific rows in that table. Although that approach is sufficient for many applications, any application touching on financial, health, or other kinds of personal information usually requires more-discrete controls over access and authorization.
    Oracle's row-level security (RLS) feature, introduced in Oracle8i, provides fine-grained access control—fine-grained means at the individual row level. Rather than opening up an entire table to any individual user who has any privileges on the table, row-level security restricts access to specific rows in a table. The result is that any individual user sees a completely different set of data—only the data that person is authorized to see—so the overall capabilities are sometimes referred to as Oracle's virtual private database, or VPD, feature.
    Using Oracle's VPD capabilities not only ensures that companies can build secure databases to adhere to privacy policies but also provides a more manageable approach to application development, because although the VPD-based policies restrict access to the database tables, they can be easily changed when necessary, without requiring modifications to application code.
    For example, say a bank's account managers (AMs) provide personal customer support to high-net-worth account holders. AMs use a custom banking application to help them check their customers' balances, deposit or withdraw funds, and decide on loan requirements, for example. At one time, the bank's policy was to allow all AMs to access all account holder information, but that policy was recently changed. Now, AMs are assigned to a particular set of customers, and they need to be able to access information pertaining only to those customers. The policy change needs to be reflected in the application, which currently shows all customer information to each AM, not just information on the customers to whom each particular AM is assigned.
    To make the application comply with the new privacy policy, the bank has three choices:
    Modify the application code to include a predicate (a WHERE clause) for all SQL statements. This option doesn't ensure privacy policy enforcement outside the application, however, and if there are other changes in the future, the code will once again have to be modified, so this is not a good approach in the long term.
    Leave the application intact, creating views with the necessary predicates and creating synonyms with the same name as the table names for these views. This option is better from the perspective of application changes and security, but it can be difficult to administer, because of the potentially large number of views to track and manage.
    Create a VPD for each of the AMs by creating policy functions that generate dynamic predicates, which can then be applied across all objects, regardless of how they are accessed, by setting up policies with the row-level-security built-in package (DBMS_RLS).
    This last option offers the best security without administrative overhead and ensures complete privacy of information—all the account managers see a different view of the table, according to their own credentials.
    This article shows you how to set up a VPD security model. It goes through the process by using the foregoing bank scenario to create policy functions, define policies, and then test results. (Note that the tables are not completely defined, to keep the example simple.)
    Basic Setup for the Example Application
    Briefly, here are the basic assumptions about the example bank application:
    A BANK schema owns two key tables that make up the application—a CUSTOMERS table:
    Name Null? Type
    CUST_ID NOT NULL NUMBER
    CUST_NAME NOT NULL VARCHAR2(20)
    and an ACCOUNTS table:
    Name Null? Type
    ACCT_NO NOT NULL NUMBER
    CUST_ID NOT NULL NUMBER
    BALANCE NUMBER(15,2)
    Listing 1 comprises the SQL script for creating and populating these two basic example tables.
    User SECMAN (security manager) owns an ACCESS_POLICY table that identifies the AMs and their respective customer accounts:
    Name Null? Type
    AM_NAME NOT NULL VARCHAR2(20)
    CUST_ID NOT NULL NUMBER
    ACCESS_TYPE NOT NULL CHAR(1)
    The AM_NAME column stores the user ID of the account manager; CUST_ID identifies the customer; and ACCESS_TYPE defines the specific access entitlement—S (SELECT), I (INSERT), D (DELETE), or U (UPDATE). Some example records from the ACCESS_POLICY table follow:
    AM_NAME CUST_ID ACCESS_TYPE
    SCOTT 123 S
    SCOTT 123 I
    SCOTT 123 D
    SCOTT 123 U
    SCOTT 456 S
    SCOTT 789 S
    LARA 456 I
    LARA 456 D
    LARA 456 U
    LARA 456 S
    As you can see, SCOTT, the AM for customer 123, has all privileges—S, I, D, and U—as does LARA for customer 456. Also, because SCOTT can confirm account balances for one customer of LARA, he has S privileges on customer 456.
    Step 1. Create a Policy Function
    The bank's access rules (contained in the ACCESS_POLICY table) must be applied somehow, dynamically, whenever an AM tries to look into customer account information. The first step is to create a policy function that returns the appropriate predicate to be applied to the table. As with the ACCESS_POLICY table, the policy functions are created and controlled by user SECMAN, for security purposes. It's best to keep privacy rules separate from the tables to which they apply.
    Let's examine the policy function, get_sel_cust_id—shown in Listing 2— in detail:
    Accepts exactly two parameters: the schema name (p_schema in varchar2) and the table name (p_table in varchar2)
    Returns one value only, a string—return varchar2 as l_retstr varchar2(2000);—comprising the predicate that will be appended to every query on the table
    Uses a cursor routine—for cust_ rec in—to get the list of values, because each user may have several cust_ids listed in the table
    Returns a constructed string—l_retstr—to be used as a predicate whenever any user attempts to access the underlying table
    The function returns the predicate where cust_id in with the appended list of customer accounts (cust_id), separated by commas, that the user (am_name = USER) is allowed to see.
    Note that before entering the loop that builds the list of cust_ids for the user, the code in Listing 2 checks to see if the user is the table owner BANK, in which case the function returns a NULL predicate, as follows:
    if (p_schema = user) then
    1_retstr := null;
    After building this function, you want to make sure it returns the appropriate predicate, by testing some sample data. Connect to the database as SECMAN, and insert some records into the ACCESS_POLICY table, giving SECMAN read privileges on a few sample accounts, as follows:
    insert into access_policy values ('SECMAN',123,'S');
    insert into access_policy values ('SECMAN',456,'S');
    insert into access_policy values ('SECMAN',789,'S');
    Now execute the function:
    select get_sel_cust_id
    ('BANK','CUSTOMERS') from dual;
    The function returns a string that will be applied as a predicate, as shown in the following sample output:
    GET_SEL_CUST_ID('BANK','CUSTOMERS')
    CUST_ID IN (123,456,789)
    You need to create similar functions for the other types of access. For simplicity's sake, create a single function for all the other access types—UPDATE, DELETE, INSERT—as shown in Listing 3. However, note that for a real-world application, each type of access should have its own individual function defined, to ensure appropriate privacy.
    The policy function in Listing 3 is nearly identical to the policy function in Listing 2, except that the predicate is further qualified by use of the information from the ACCESS_CONTROL table:
    and access_type in ('I', 'U', 'D')
    Creating a policy function is just the first step. You now need to ensure that the function will be used, by defining the policy that should control its use in your system.
    Step 2. Define a Policy
    Policies are defined with the DBMS_RLS package, which is Oracle-supplied. Be aware that the policies themselves are not database objects owned by any user (schema); they are logical constructs. Any user who has the execute privilege on the DBMS_RLS package can modify or drop a policy created by another user. Privileges to DBMS_RLS should be judiciously controlled and granted with caution.
    In the following example, user SECMAN is granted execute privileges (by SYS) on the DBMS_RLS package:
    grant execute on dbms_rls to secman;
    Listing 4 creates a policy named CUST_SEL_POLICY on the table CUSTOMERS of schema BANK. This policy applies the predicate returned by the function GET_SEL_CUST_ID (which is shown in Listing 2) owned by schema SECMAN to all SELECT statements on the table.
    Similarly, you place another policy on the table for other access types, as shown in Listing 5. This policy applies to inserts, updates, and deletes in the CUSTOMERS table.
    It is almost identical to the SELECT policy, except that this policy includes a check that ensures that the policy will remain compliant even after an update:
    update_check => TRUE
    Data cannot be added to the table unless it adheres to the policy.
    Step 3. Test the Setup
    Now that the building blocks are in place, let's see how they work. Connecting as user BANK and issuing a simple select * from customers; query displays the following:
    CUST_ID CUST_NAME
    123 Jay Kulkarni
    456 Wim Patel
    These two records are the full contents of the CUSTOMERS table, and both records are shown because BANK owns the table, so the predicate clause is NULL—that is, no predicate is applied. However, when user LARA makes the same query, she sees the following:
    select * from customers;
    CUST_ID CUST_NAME
    456 WIM PATEL
    LARA sees only CUST_ID 456, not 123, because that is the row she is authorized to see, as determined by the ACCESS_ POLICY table. Note that the query has no WHERE clause but that the selection from the table is automatically filtered to show only the authorized rows.
    If user SCOTT makes the same query, his results are different from the results for LARA: select * from customers;
    CUST_ID CUST_NAME
    123 Jay Kulkarni
    456 Wim Patel
    User SCOTT sees both rows, because he is authorized to do so, as shown in the ACCESS_POLICY table. When user LARA issues the query, the policy function get_sel_cust_id returns the predicate where cust_id in (456). Lara's original query select * from customers is rewritten as
    select * from
    (select * from customers)
    where cust_id in (456)
    The predicate is automatically appended to the user's original query. The same thing happens when the user updates the table:
    SQL> update bank.customers
    2 set cust_name = 'PAT TERRY';
    1 row updated.
    Note that in this example, only one row is updated, even though there are actually two rows in the underlying table. The policy (CUST_IUD_POLICY) appends the predicate where cust_id in (456) to the update statement. Similarly, while the table is being deleted, only the rows for which the user is authorized are deleted.
    Attempting to insert a row containing data for which the user is not authorized results in an error message. For example, in this query, LARA is attempting to add a record to the CUSTOMER table for an account not under her purview: Next Steps
    READ more about
    VPD Oracle9i Supplied PL/SQL Packages and Types Reference
    Oracle Privacy Security Auditing
    SQL> insert into bank.customers
    2 values (789,'KIM PARK');
    insert into bank.customers
    ERROR at line 1:
    ORA-28115: policy with check option
    violation
    According to the ACCESS_POLICY table, Scott has SELECT privileges on account 789—no other privileges for any other AM are listed in the table.
    Using policies in conjunction with functions ensures authorized access to specific records of a table. The rules are applied regardless of how the table is accessed, whether through an application or directly through an ad hoc query tool, such as SQL*Plus. Users see only rows for which they have been authorized.
    Policies can be applied to multiple tables, and a single policy function can be used by any number of policies. Listing 6 shows a policy on an ACCOUNTS table that uses the get_sel_cust_id function initially created for use with the CUSTOMERS table.
    Arup Nanda ([email protected]) is the chief database architect at Proligence Solutions ( Printer View
    http://otn.oracle.com/oramag/oracle/04-mar/o24tech_security.html
    Joel Pérez
    http://otn.oracle.com/experts

  • Database security using VPD

    Hi,
    I am trying to implement Virtual Private Database policy to restrict the user data access.
    I am creating this with Scott schema with 11g R1.
    While accessing DBMS_RLS package I am getting below error.
    SQL> begin
      2  dbms_rls.add_policy  (
      3    user,
      4    'department_secrets',
      5    'choosable policy name',
      6    user,
      7    'pck_vpd.predicate',
      8    'select,update,delete');
      9  end;
    10  /
    dbms_rls.add_policy  (
    ERROR at line 2:
    ORA-06550: line 2, column 1:
    PLS-00201: identifier 'DBMS_RLS' must be declared
    ORA-06550: line 2, column 1:
    PL/SQL: Statement ignoredCan someone help me to identify what's the issue here?

    Mak1980 wrote:
    Just wanted to know why we have to give grant to this package as this is also one of the Oracle supplied package like UTL_FILE and others.The DBMS_RLS package allows SQL injection in simplistic terms. The VPDB user function defined for the policy, changes the SQL statement by adding predicates to it that needs to be met. This allows certain rows to be hidden from the code that issued that SQL statement - and that code and user/developer is totally oblivious that SQL statements send to the database are changed by the VPDB function.
    How does it make sense to allow public access to all schemas to perform this type of SQL injection?
    Robust security is about giving code and users the absolute minimum set of privs needed, for that code/user to do the required job.
    UTL_FILE is no different. It allows the code/user to step outside of Oracle schema and database, and directly into operating system's file system. What is the first step in pwning a server? Getting backdoor code onto that server for execution. And UTL_FILE allows exactly that.

  • VPD 9i

    Hi all!
    I have a problem and I would like to get your oppinion.
    The customer wants implement VPD. The database is Oracle 9i (9.2.0.7) on RHEL4AS Server. Initially, this step was included in Database Migration to Oracle 10g, but, the application runs very slowly! After this situation, the IT Manager wants to implement VPD in 9i and then migrate your database to 10g, after the application have been modified by development team.
    But, in Oracle 9i, the procedure ADD_POLICY in DBMS_RLS package haven't SEC_RELEVANT_COLS and SEC_RELEVANT_COLS_OPT options. How can I implement VPD in vertical and horizontal levels in Oracle 9i?
    Thanks!
    Marcus Vinicius

    In 9i, VPD didn't allow you to selectively permit access to particular columns in a table, just particular rows. In 9i, you could create a series of views that expose different sets of columns, grant appropriate users appropriate access on one of these views, and create appropriate private synonyms that point to the appropriate view in each user's schema. That's probably more work than figuring out how to fix the performance issues that followed the 10g migration.
    Justin

  • Views - Security Loop Hole ?

    Dear Friends
    To my understanding VIEWS can be used to provided elementary security to data. New Features like VPD (DBMS_RLS package) and Oracle Lable Security have been introduced in Oracle.
    Can you please tell me what is limitation of using views from security point of view ? i.e I want a simple demonstration that reflects security loop hole due to VIEWS.
    Thanks

    Here's an elementary example of using a view for security:
    CREATE TABLE person (
    person_id  NUMBER(3),
    first_name VARCHAR2(25),
    last_name  VARCHAR2(25),
    title_1    VARCHAR2(10),
    title_2    VARCHAR2(10),
    socsecno   VARCHAR2(11));
    INSERT INTO person
    VALUES (1, 'Dan', 'Morgan', 'BS', 'PhD', '123-54-0987');
    INSERT INTO person
    VALUES (1, 'Jack', 'Cline', 'BA', 'MA', '987-03-4793');
    INSERT INTO person
    VALUES (1,'Tara','Havemeyer','BA',NULL,'402-87-1005');
    CREATE OR REPLACE VIEW person_security_view AS
    SELECT first_name || ' ' || last_name NAME,
    '***-**-' || SUBSTR(socsecno,8) SSN
    FROM person;A loophole? How about putting it into the same schema with the table and granting SELECT on both.
    Here's another example a bit more sophisticated:
    exec dbms_application_info.set_client_info('747');
    CREATE OR REPLACE FUNCTION app_info_wrapper RETURN VARCHAR2 IS
    x VARCHAR2(64);
    BEGIN
      dbms_application_info.read_client_info(x);
      RETURN x;
    END app_info_wrapper;
    CREATE OR REPLACE VIEW airplanes_view AS
    SELECT *
    FROM airplanes
    WHERE program_id = app_info_wrapper;Source:
    http://www.psoug.org/reference/dbms_applic_info.html
    A loophole? Grant the end user the ability to alter the context for starters.

  • Is "unsuccessful export" any good?

    Hi:
    I did an export with full=Y direct=Y consistent=Y. It did everything OK except for...
    . exporting roles
    EXP-00008: ORACLE error 4045 encountered
    ORA-04045: errors during recompilation/revalidation of SYS.DBMS_AQ_SYS_EXP_INTERNAL
    ORA-06552: PL/SQL: Compilation unit analysis terminated
    ORA-06553: PLS-905: object SYS.AQ$_SUBSCRIBERS is invalid
    ORA-06508: PL/SQL: could not find program unit being called
    ORA-06512: at "SYS.DBMS_AQ_EXP_QUEUES", line 141
    ORA-06512: at line 1
    EXP-00083: The previous problem occurred when calling SYS.DBMS_AQ_EXP_QUEUES.grant_sysprivs_exp
    But it went ahead and exported millions and millions of data records, generating a evry large export file in the end.
    Q: Will I be able to IMPORT using this export file in the future should I need to do that?
    I don't want to experiment with this, because I'll clobber my DB in the process. My development DB instance does not have this problem, so I can't test there.
    Any insights as to what might be wrong with the DB instance to create this problem?
    Oracle8i 8.1.7.0.0 on Alpha Tru64
    Thanks

    891 INVALIDS (gulp!)
    SVRMGR> select object_name, object_type from dba_objects where status = 'INVALID';
    OBJECT_NAME OBJECT_TYPE
    ALL_POLICIES VIEW
    ALL_PROBE_OBJECTS VIEW
    ALL_QUEUES VIEW
    ALL_QUEUE_TABLES VIEW
    ALL_REGISTERED_SNAPSHOTS VIEW
    ALL_REPCAT VIEW
    ALL_REPCATLOG VIEW
    ALL_REPCAT_REFRESH_TEMPLATES VIEW
    ALL_REPCAT_TEMPLATE_OBJECTS VIEW
    ALL_REPCAT_TEMPLATE_PARMS VIEW
    ALL_REPCAT_TEMPLATE_SITES VIEW
    ALL_REPCAT_USER_AUTHORIZATIONS VIEW
    ALL_REPCAT_USER_PARM_VALUES VIEW
    ALL_REPCOLUMN VIEW
    ALL_REPCOLUMN_GROUP VIEW
    ALL_REPDDL VIEW
    ALL_REPFLAVOR_COLUMNS VIEW
    ALL_REPFLAVOR_OBJECTS VIEW
    ALL_REPGENERATED VIEW
    ALL_REPGENOBJECTS VIEW
    ALL_REPGROUP VIEW
    ALL_REPGROUPED_COLUMN VIEW
    ALL_REPGROUP_PRIVILEGES VIEW
    ALL_REPKEY_COLUMNS VIEW
    ALL_REPOBJECT VIEW
    ALL_REPPROP VIEW
    ALL_SNAPSHOTS VIEW
    ALL_SNAPSHOT_LOGS VIEW
    ALL_SNAPSHOT_REFRESH_TIMES VIEW
    ALL_SOURCE VIEW
    AQ$_DEQUEUE_HISTORY TYPE
    AQ$_DEQUEUE_HISTORY_T TYPE
    AQ$_DUMMY_T TYPE
    AQ$_HISTORY TYPE
    AQ$_JMS_BYTES_MESSAGE TYPE
    AQ$_JMS_HEADER TYPE
    AQ$_JMS_MAP_MESSAGE TYPE
    AQ$_JMS_OBJECT_MESSAGE TYPE
    AQ$_JMS_STREAM_MESSAGE TYPE
    AQ$_JMS_TEXT_MESSAGE TYPE
    AQ$_JMS_USERPROPARRAY TYPE
    AQ$_JMS_USERPROPERTY TYPE
    AQ$_NOTIFY_MSG TYPE
    AQ$_RECIPIENTS TYPE
    AQ$_SUBSCRIBERS TYPE
    CLIENT_IP_ADDRESS FUNCTION
    DATABASE_NAME FUNCTION
    DBA_CACHEABLE_OBJECTS VIEW
    DBA_IAS_GEN_STMTS VIEW
    DBA_IAS_GEN_STMTS_EXP VIEW
    DBA_IAS_OBJECTS VIEW
    DBA_IAS_OBJECTS_BASE VIEW
    DBA_IAS_POSTGEN_STMTS VIEW
    DBA_IAS_PREGEN_STMTS VIEW
    DBA_IAS_TEMPLATES VIEW
    DBA_QUEUES VIEW
    DBA_QUEUE_SCHEDULES VIEW
    DBA_REGISTERED_SNAPSHOTS VIEW
    DBA_REPCAT VIEW
    DBA_REPCAT_USER_AUTHORIZATIONS VIEW
    DBA_REPCAT_USER_PARM_VALUES VIEW
    DBA_REPCOLUMN VIEW
    DBA_REPFLAVOR_COLUMNS VIEW
    DBA_REPFLAVOR_OBJECTS VIEW
    DBA_REPGENERATED VIEW
    DBA_REPGENOBJECTS VIEW
    DBA_REPGROUP VIEW
    DBA_REPGROUP_PRIVILEGES VIEW
    DBA_REPOBJECT VIEW
    DBA_REPPRIORITY_GROUP VIEW
    DBA_REPPROP VIEW
    DBA_REPSITES VIEW
    DBA_RULESETS VIEW
    DBA_SEGMENTS VIEW
    DBA_SNAPSHOTS VIEW
    DBA_SNAPSHOT_LOGS VIEW
    DBA_TRIGGERS VIEW
    DBA_TRIGGER_COLS VIEW
    DBJ_LONG_NAME FUNCTION
    DBJ_SHORT_NAME FUNCTION
    DBMSOBJG PACKAGE
    DBMSOBJG PACKAGE BODY
    DBMSOBJG2 PACKAGE
    DBMSOBJG2 PACKAGE BODY
    DBMSOBJGWRAPPER PACKAGE
    DBMSOBJGWRAPPER PACKAGE BODY
    DBMS_ALERT PACKAGE
    DBMS_ALERT PACKAGE BODY
    DBMS_AQ PACKAGE
    DBMS_AQ PACKAGE BODY
    DBMS_AQADM PACKAGE BODY
    DBMS_AQADM_SYS PACKAGE BODY
    DBMS_AQADM_SYSCALLS PACKAGE
    DBMS_AQADM_SYSCALLS PACKAGE BODY
    DBMS_AQIN PACKAGE
    DBMS_AQIN PACKAGE BODY
    DBMS_AQJMS PACKAGE
    DBMS_AQJMS PACKAGE BODY
    DBMS_AQ_EXP_HISTORY_TABLES PACKAGE
    DBMS_AQ_EXP_HISTORY_TABLES PACKAGE BODY
    DBMS_AQ_EXP_INDEX_TABLES PACKAGE
    DBMS_AQ_EXP_INDEX_TABLES PACKAGE BODY
    DBMS_AQ_EXP_QUEUE_TABLES PACKAGE
    DBMS_AQ_EXP_QUEUE_TABLES PACKAGE BODY
    DBMS_AQ_EXP_SUBSCRIBER_TABLES PACKAGE
    DBMS_AQ_EXP_SUBSCRIBER_TABLES PACKAGE BODY
    DBMS_AQ_EXP_TIMEMGR_TABLES PACKAGE
    DBMS_AQ_EXP_TIMEMGR_TABLES PACKAGE BODY
    DBMS_AQ_EXP_ZECURITY PACKAGE BODY
    DBMS_AQ_IMPORT_INTERNAL PACKAGE BODY
    DBMS_AQ_IMP_INTERNAL PACKAGE
    DBMS_AQ_IMP_INTERNAL PACKAGE BODY
    DBMS_AQ_IMP_ZECURITY PACKAGE BODY
    DBMS_AQ_SYS_EXP_ACTIONS PACKAGE
    DBMS_AQ_SYS_EXP_ACTIONS PACKAGE BODY
    DBMS_AQ_SYS_EXP_INTERNAL PACKAGE BODY
    DBMS_AQ_SYS_IMP_INTERNAL PACKAGE
    DBMS_AQ_SYS_IMP_INTERNAL PACKAGE BODY
    DBMS_ASYNCRPC_PUSH PACKAGE
    DBMS_ASYNCRPC_PUSH PACKAGE BODY
    DBMS_BACKUP_RESTORE PACKAGE
    DBMS_BACKUP_RESTORE PACKAGE BODY
    DBMS_DDL_INTERNAL PACKAGE BODY
    DBMS_DEBUG PACKAGE
    DBMS_DEBUG PACKAGE BODY
    DBMS_DEBUG_VC2COLL TYPE
    DBMS_DEFER PACKAGE
    DBMS_DEFER PACKAGE BODY
    DBMS_DEFERGEN PACKAGE
    DBMS_DEFERGEN PACKAGE BODY
    DBMS_DEFERGEN_AUDIT PACKAGE
    DBMS_DEFERGEN_AUDIT PACKAGE BODY
    DBMS_DEFERGEN_INTERNAL PACKAGE
    DBMS_DEFERGEN_INTERNAL PACKAGE BODY
    DBMS_DEFERGEN_LOB PACKAGE
    DBMS_DEFERGEN_LOB PACKAGE BODY
    DBMS_DEFERGEN_PRIORITY PACKAGE
    DBMS_DEFERGEN_PRIORITY PACKAGE BODY
    DBMS_DEFERGEN_RESOLUTION PACKAGE
    DBMS_DEFERGEN_RESOLUTION PACKAGE BODY
    DBMS_DEFERGEN_UTIL PACKAGE
    DBMS_DEFERGEN_UTIL PACKAGE BODY
    DBMS_DEFERGEN_WRAP PACKAGE
    DBMS_DEFERGEN_WRAP PACKAGE BODY
    DBMS_DEFER_ENQ_UTL PACKAGE
    DBMS_DEFER_ENQ_UTL PACKAGE BODY
    DBMS_DEFER_INTERNAL_QUERY PACKAGE
    DBMS_DEFER_INTERNAL_QUERY PACKAGE BODY
    DBMS_DEFER_INTERNAL_SYS PACKAGE
    DBMS_DEFER_INTERNAL_SYS PACKAGE BODY
    DBMS_DEFER_QUERY PACKAGE
    DBMS_DEFER_QUERY PACKAGE BODY
    DBMS_DEFER_QUERY_UTL PACKAGE
    DBMS_DEFER_QUERY_UTL PACKAGE BODY
    DBMS_DEFER_REPCAT PACKAGE
    DBMS_DEFER_REPCAT PACKAGE BODY
    DBMS_DEFER_SYS PACKAGE BODY
    DBMS_DEFER_SYS_PART1 PACKAGE
    DBMS_DEFER_SYS_PART1 PACKAGE BODY
    DBMS_DESCRIBE PACKAGE
    DBMS_DESCRIBE PACKAGE BODY
    DBMS_DISTRIBUTED_TRUST_ADMIN PACKAGE
    DBMS_DISTRIBUTED_TRUST_ADMIN PACKAGE BODY
    DBMS_EPGC PACKAGE
    DBMS_EPGC PACKAGE BODY
    DBMS_HS PACKAGE
    DBMS_HS PACKAGE BODY
    DBMS_HS_ALT PACKAGE
    DBMS_HS_ALT PACKAGE BODY
    DBMS_HS_CHK PACKAGE
    DBMS_HS_CHK PACKAGE BODY
    DBMS_HS_EXTPROC PACKAGE
    DBMS_HS_EXTPROC PACKAGE BODY
    DBMS_HS_UTL PACKAGE
    DBMS_HS_UTL PACKAGE BODY
    DBMS_IAS_CONFIGURE PACKAGE
    DBMS_IAS_CONFIGURE PACKAGE BODY
    DBMS_IAS_INST PACKAGE
    DBMS_IAS_INST PACKAGE BODY
    DBMS_IAS_INST_UTL PACKAGE
    DBMS_IAS_INST_UTL PACKAGE BODY
    DBMS_IAS_MT_INST PACKAGE
    DBMS_IAS_MT_INST PACKAGE BODY
    DBMS_IAS_QUERY PACKAGE
    DBMS_IAS_QUERY PACKAGE BODY
    DBMS_IAS_SESSION PACKAGE BODY
    DBMS_IAS_TEMPLATE PACKAGE
    DBMS_IAS_TEMPLATE PACKAGE BODY
    DBMS_IJOB PACKAGE BODY
    DBMS_INTERNAL_REPCAT PACKAGE
    DBMS_INTERNAL_REPCAT PACKAGE BODY
    DBMS_INTERNAL_TRIGGER PACKAGE
    DBMS_INTERNAL_TRIGGER PACKAGE BODY
    DBMS_IREFRESH PACKAGE
    DBMS_IREFRESH PACKAGE BODY
    DBMS_ISNAPSHOT PACKAGE
    DBMS_ISNAPSHOT PACKAGE BODY
    DBMS_JAVA_TEST PACKAGE
    DBMS_JAVA_TEST PACKAGE BODY
    DBMS_JOB PACKAGE BODY
    DBMS_LOB PACKAGE
    DBMS_LOB PACKAGE BODY
    DBMS_LOCK PACKAGE BODY
    DBMS_LOGMNR PACKAGE
    DBMS_LOGMNR PACKAGE BODY
    DBMS_LOGMNR_D PACKAGE
    DBMS_LOGMNR_D PACKAGE BODY
    DBMS_MAINT_GEN PACKAGE
    DBMS_MAINT_GEN PACKAGE BODY
    DBMS_NAMESPACE PACKAGE
    DBMS_NAMESPACE PACKAGE BODY
    DBMS_OBFUSCATION_TOOLKIT PACKAGE
    DBMS_OBFUSCATION_TOOLKIT PACKAGE BODY
    DBMS_OBFUSCATION_TOOLKIT_FFI PACKAGE
    DBMS_OBFUSCATION_TOOLKIT_FFI PACKAGE BODY
    DBMS_OFFLINE_INTERNAL PACKAGE
    DBMS_OFFLINE_INTERNAL PACKAGE BODY
    DBMS_OFFLINE_OG PACKAGE
    DBMS_OFFLINE_OG PACKAGE BODY
    DBMS_OFFLINE_RGT PACKAGE
    DBMS_OFFLINE_RGT PACKAGE BODY
    DBMS_OFFLINE_SNAPSHOT PACKAGE
    DBMS_OFFLINE_SNAPSHOT PACKAGE BODY
    DBMS_OFFLINE_UTL PACKAGE
    DBMS_OFFLINE_UTL PACKAGE BODY
    DBMS_ORACLE_TRACE_AGENT PACKAGE
    DBMS_ORACLE_TRACE_AGENT PACKAGE BODY
    DBMS_ORACLE_TRACE_USER PACKAGE
    DBMS_ORACLE_TRACE_USER PACKAGE BODY
    DBMS_PCLXUTIL PACKAGE
    DBMS_PCLXUTIL PACKAGE BODY
    DBMS_PICKLER PACKAGE
    DBMS_PICKLER PACKAGE BODY
    DBMS_PIPE PACKAGE
    DBMS_PIPE PACKAGE BODY
    DBMS_PITR PACKAGE
    DBMS_PITR PACKAGE BODY
    DBMS_PLUGTS PACKAGE
    DBMS_PLUGTS PACKAGE BODY
    DBMS_PRVTAQIM PACKAGE
    DBMS_PRVTAQIM PACKAGE BODY
    DBMS_PRVTAQIP PACKAGE
    DBMS_PRVTAQIP PACKAGE BODY
    DBMS_PRVTAQIS PACKAGE
    DBMS_PRVTAQIS PACKAGE BODY
    DBMS_PSP PACKAGE
    DBMS_PSP PACKAGE BODY
    DBMS_PSWMG_IMPORT PACKAGE
    DBMS_PSWMG_IMPORT PACKAGE BODY
    DBMS_RANDOM PACKAGE
    DBMS_RANDOM PACKAGE BODY
    DBMS_RCVMAN PACKAGE
    DBMS_RCVMAN PACKAGE BODY
    DBMS_RECTIFIER_DIFF PACKAGE
    DBMS_RECTIFIER_DIFF PACKAGE BODY
    DBMS_RECTIFIER_FRIENDS PACKAGE
    DBMS_RECTIFIER_FRIENDS PACKAGE BODY
    DBMS_REFRESH PACKAGE
    DBMS_REFRESH PACKAGE BODY
    DBMS_REPAIR PACKAGE
    DBMS_REPAIR PACKAGE BODY
    DBMS_REPCAT PACKAGE
    DBMS_REPCAT PACKAGE BODY
    DBMS_REPCAT_ADMIN PACKAGE
    DBMS_REPCAT_ADMIN PACKAGE BODY
    DBMS_REPCAT_AUTH PACKAGE
    DBMS_REPCAT_AUTH PACKAGE BODY
    DBMS_REPCAT_CACHE PACKAGE
    DBMS_REPCAT_CACHE PACKAGE BODY
    DBMS_REPCAT_CONF PACKAGE
    DBMS_REPCAT_CONF PACKAGE BODY
    DBMS_REPCAT_DECL PACKAGE
    DBMS_REPCAT_DECL PACKAGE BODY
    DBMS_REPCAT_FLA PACKAGE
    DBMS_REPCAT_FLA PACKAGE BODY
    DBMS_REPCAT_FLA_MAS PACKAGE
    DBMS_REPCAT_FLA_MAS PACKAGE BODY
    DBMS_REPCAT_FLA_UTL PACKAGE
    DBMS_REPCAT_FLA_UTL PACKAGE BODY
    DBMS_REPCAT_INSTANTIATE PACKAGE
    DBMS_REPCAT_INSTANTIATE PACKAGE BODY
    DBMS_REPCAT_INTERNAL PACKAGE
    DBMS_REPCAT_INTERNAL PACKAGE BODY
    DBMS_REPCAT_INTERNAL_PACKAGE PACKAGE
    DBMS_REPCAT_INTERNAL_PACKAGE PACKAGE BODY
    DBMS_REPCAT_MAS PACKAGE
    DBMS_REPCAT_MAS PACKAGE BODY
    DBMS_REPCAT_MIG PACKAGE
    DBMS_REPCAT_MIG PACKAGE BODY
    DBMS_REPCAT_MIG_INTERNAL PACKAGE
    DBMS_REPCAT_MIG_INTERNAL PACKAGE BODY
    DBMS_REPCAT_OUTPUT PACKAGE
    DBMS_REPCAT_OUTPUT PACKAGE BODY
    DBMS_REPCAT_RGT PACKAGE
    DBMS_REPCAT_RGT PACKAGE BODY
    DBMS_REPCAT_RGT_ALT PACKAGE
    DBMS_REPCAT_RGT_ALT PACKAGE BODY
    DBMS_REPCAT_RGT_CHK PACKAGE
    DBMS_REPCAT_RGT_CHK PACKAGE BODY
    DBMS_REPCAT_RGT_CUST PACKAGE
    DBMS_REPCAT_RGT_CUST PACKAGE BODY
    DBMS_REPCAT_RGT_CUST2 PACKAGE
    DBMS_REPCAT_RGT_CUST2 PACKAGE BODY
    DBMS_REPCAT_RGT_UTL PACKAGE
    DBMS_REPCAT_RGT_UTL PACKAGE BODY
    DBMS_REPCAT_RPC PACKAGE
    DBMS_REPCAT_RPC PACKAGE BODY
    DBMS_REPCAT_RPC_UTL PACKAGE
    DBMS_REPCAT_RPC_UTL PACKAGE BODY
    DBMS_REPCAT_SNA PACKAGE
    DBMS_REPCAT_SNA PACKAGE BODY
    DBMS_REPCAT_SNA_UTL PACKAGE
    DBMS_REPCAT_SNA_UTL PACKAGE BODY
    DBMS_REPCAT_UNTRUSTED PACKAGE
    DBMS_REPCAT_UNTRUSTED PACKAGE BODY
    DBMS_REPCAT_UTL PACKAGE
    DBMS_REPCAT_UTL PACKAGE BODY
    DBMS_REPCAT_UTL2 PACKAGE
    DBMS_REPCAT_UTL2 PACKAGE BODY
    DBMS_REPCAT_UTL3 PACKAGE
    DBMS_REPCAT_UTL3 PACKAGE BODY
    DBMS_REPCAT_UTL4 PACKAGE
    DBMS_REPCAT_UTL4 PACKAGE BODY
    DBMS_REPCAT_VALIDATE PACKAGE
    DBMS_REPCAT_VALIDATE PACKAGE BODY
    DBMS_REPUTIL PACKAGE
    DBMS_REPUTIL PACKAGE BODY
    DBMS_REPUTIL2 PACKAGE
    DBMS_REPUTIL2 PACKAGE BODY
    DBMS_RESOURCE_MANAGER PACKAGE
    DBMS_RESOURCE_MANAGER PACKAGE BODY
    DBMS_RESOURCE_MANAGER_PRIVS PACKAGE
    DBMS_RESOURCE_MANAGER_PRIVS PACKAGE BODY
    DBMS_RLS PACKAGE
    DBMS_RLS PACKAGE BODY
    DBMS_RMIN PACKAGE
    DBMS_RMIN PACKAGE BODY
    DBMS_ROWID PACKAGE
    DBMS_ROWID PACKAGE BODY
    DBMS_RULE PACKAGE
    DBMS_RULE PACKAGE BODY
    DBMS_RULE_ADM PACKAGE
    DBMS_RULE_ADM PACKAGE BODY
    DBMS_RULE_EXIMP PACKAGE
    DBMS_RULE_EXIMP PACKAGE BODY
    DBMS_SESSION PACKAGE BODY
    DBMS_SNAPSHOT PACKAGE
    DBMS_SNAPSHOT PACKAGE BODY
    DBMS_SNAPSHOT_UTL PACKAGE
    DBMS_SNAPSHOT_UTL PACKAGE BODY
    DBMS_SNAP_INTERNAL PACKAGE
    DBMS_SNAP_INTERNAL PACKAGE BODY
    DBMS_SNAP_REPAPI PACKAGE
    DBMS_SNAP_REPAPI PACKAGE BODY
    DBMS_SPACE PACKAGE
    DBMS_SPACE PACKAGE BODY
    DBMS_SUMADV PACKAGE
    DBMS_SUMADV PACKAGE BODY
    DBMS_SUMMARY PACKAGE
    DBMS_SUMMARY PACKAGE BODY
    DBMS_SUMREF_CHILD PACKAGE
    DBMS_SUMREF_CHILD PACKAGE BODY
    DBMS_SUMREF_PARENT PACKAGE
    DBMS_SUMREF_PARENT PACKAGE BODY
    DBMS_SUMREF_UTIL PACKAGE
    DBMS_SUMREF_UTIL PACKAGE BODY
    DBMS_SUMREF_UTIL2 PACKAGE
    DBMS_SUMREF_UTIL2 PACKAGE BODY
    DBMS_SUMVDM PACKAGE
    DBMS_SUMVDM PACKAGE BODY
    DBMS_SYSTEM PACKAGE
    DBMS_SYSTEM PACKAGE BODY
    DBMS_SYS_ERROR PACKAGE BODY
    DBMS_TRACE PACKAGE
    DBMS_TRACE PACKAGE BODY
    DBMS_TRANSACTION PACKAGE
    DBMS_TRANSACTION PACKAGE BODY
    DBMS_TTS PACKAGE
    DBMS_TTS PACKAGE BODY
    DBMS_XMLQUERY PACKAGE
    DBMS_XMLQUERY PACKAGE BODY
    DBMS_XMLSAVE PACKAGE
    DBMS_XMLSAVE PACKAGE BODY
    DEFCALL VIEW
    DEFCALLDEST VIEW
    DEFTRANDEST VIEW
    DES_ENCRYPTED_PASSWORD FUNCTION
    DIANA PACKAGE BODY
    DICTIONARY_OBJ_NAME_LIST FUNCTION
    DICTIONARY_OBJ_OWNER FUNCTION
    DICTIONARY_OBJ_OWNER_LIST FUNCTION
    DIUTIL PACKAGE BODY
    GET_ERROR$ PACKAGE
    GET_ERROR$ PACKAGE BODY
    GRANTEE FUNCTION
    HS_CLASS_CAPS VIEW
    HS_CLASS_DD VIEW
    HS_CLASS_INIT VIEW
    HS_EXTERNAL_OBJECTS VIEW
    HS_FDS_CLASS VIEW
    HS_FDS_INST VIEW
    HS_INST_CAPS VIEW
    HS_INST_DD VIEW
    HS_INST_INIT VIEW
    HTF PACKAGE
    HTF PACKAGE BODY
    HTP PACKAGE
    HTP PACKAGE BODY
    HTTP_EXP PACKAGE
    HTTP_EXP PACKAGE BODY
    IFR_EXP PACKAGE
    IFR_EXP PACKAGE BODY
    INITJVMAUX PACKAGE
    INITJVMAUX PACKAGE BODY
    INSTANCE_NUM FUNCTION
    IS_ALTER_COLUMN FUNCTION
    IS_CREATING_NESTED_TABLE FUNCTION
    IS_DROP_COLUMN FUNCTION
    IS_SERVERERROR FUNCTION
    JAVA_AUTONOMOUS_TRANSACTION PACKAGE
    JAVA_AUTONOMOUS_TRANSACTION PACKAGE BODY
    JAVA_XA PACKAGE
    JAVA_XA PACKAGE BODY
    JIS$INTERCEPTOR$ PACKAGE
    JIS$INTERCEPTOR$ PACKAGE BODY
    JIS_EXIT_JAVA_SESSION PROCEDURE
    JIS_EXP PACKAGE
    JIS_EXP PACKAGE BODY
    JIS_EXP_AUX PACKAGE
    JIS_EXP_AUX PACKAGE BODY
    JIS_IMP_AUX PACKAGE
    JIS_IMP_AUX PACKAGE BODY
    LOGIN_USER FUNCTION
    NameFromLastDDL FUNCTION
    ODCIARGDESC TYPE
    ODCIARGDESCLIST TYPE
    ODCICOLINFO TYPE
    ODCICOLINFODUMP PROCEDURE
    ODCICOLINFOLIST TYPE
    ODCICONST PACKAGE
    ODCICOST TYPE
    ODCIFUNCINFO TYPE
    ODCIINDEXALTEROPTIONDUMP PROCEDURE
    ODCIINDEXCTX TYPE
    ODCIINDEXINFO TYPE
    ODCIINDEXINFODUMP PROCEDURE
    ODCIOBJECT TYPE
    ODCIOBJECTLIST TYPE
    ODCIPREDINFO TYPE
    ODCIPREDINFODUMP PROCEDURE
    ODCIQUERYINFO TYPE
    ODCIQUERYINFODUMP PROCEDURE
    ODCIRIDLIST TYPE
    ODCISTATSOPTIONS TYPE
    ODCISTATSOPTIONSDUMP PROCEDURE
    ORB_EXP PACKAGE
    ORB_EXP PACKAGE BODY
    OWA PACKAGE
    OWA PACKAGE BODY
    OWA_CACHE PACKAGE
    OWA_CACHE PACKAGE BODY
    OWA_COOKIE PACKAGE
    OWA_COOKIE PACKAGE BODY
    OWA_CUSTOM PACKAGE
    OWA_CUSTOM PACKAGE BODY
    OWA_IMAGE PACKAGE
    OWA_IMAGE PACKAGE BODY
    OWA_OPT_LOCK PACKAGE
    OWA_OPT_LOCK PACKAGE BODY
    OWA_PATTERN PACKAGE
    OWA_PATTERN PACKAGE BODY
    OWA_SEC PACKAGE
    OWA_SEC PACKAGE BODY
    OWA_TEXT PACKAGE
    OWA_TEXT PACKAGE BODY
    OWA_UTIL PACKAGE
    OWA_UTIL PACKAGE BODY
    PBREAK PACKAGE
    PBREAK PACKAGE BODY
    PBRPH PACKAGE
    PBRPH PACKAGE BODY
    PBSDE PACKAGE
    PBSDE PACKAGE BODY
    PBUTL PACKAGE
    PIDL PACKAGE BODY
    PRIVILEGE_LIST FUNCTION
    PRVT_EGUTL PACKAGE
    PRVT_EGUTL PACKAGE BODY
    PRVT_EPGC PACKAGE
    PRVT_EPGC PACKAGE BODY
    PSTUB PROCEDURE
    PSTUBT PROCEDURE
    REPCAT$_CDEF VIEW
    REPCAT_GENERATED VIEW
    REPCAT_REPCAT VIEW
    REPCAT_REPOBJECT VIEW
    REPCAT_REPOBJECT_BASE VIEW
    REVOKEE FUNCTION
    RMJVM PACKAGE
    RMJVM PACKAGE BODY
    SERVER_ERROR FUNCTION
    SESSION_CONTEXT VIEW
    SM$INTEGRITY_CONS VIEW
    SM$TS_USED VIEW
    SM_$VERSION VIEW
    SNS_EXP PACKAGE
    SNS_EXP PACKAGE BODY
    SQLJUTL PACKAGE
    SQLJUTL PACKAGE BODY
    SYSEVENT FUNCTION
    TS_PITR_OBJECTS_TO_BE_DROPPED VIEW
    USER_JOBS VIEW
    USER_QUEUES VIEW
    USER_QUEUE_SCHEDULES VIEW
    USER_REGISTERED_SNAPSHOTS VIEW
    USER_REPCAT VIEW
    USER_REPCATLOG VIEW
    USER_REPCAT_REFRESH_TEMPLATES VIEW
    USER_REPCAT_TEMPLATE_OBJECTS VIEW
    USER_REPCAT_TEMPLATE_PARMS VIEW
    USER_REPCAT_TEMPLATE_SITES VIEW
    USER_REPCAT_USER_AUTHORIZATION VIEW
    USER_REPCAT_USER_PARM_VALUES VIEW
    USER_REPCOLUMN VIEW
    USER_REPDDL VIEW
    USER_REPFLAVOR_COLUMNS VIEW
    USER_REPFLAVOR_OBJECTS VIEW
    USER_REPGENERATED VIEW
    USER_REPGENOBJECTS VIEW
    USER_REPGROUP VIEW
    USER_REPGROUP_PRIVILEGES VIEW
    USER_REPKEY_COLUMNS VIEW
    USER_REPOBJECT VIEW
    USER_REPPROP VIEW
    USER_REPSCHEMA VIEW
    USER_REPSITES VIEW
    USER_SEGMENTS VIEW
    USER_SNAPSHOTS VIEW
    USER_SNAPSHOT_LOGS VIEW
    UTL_COLL PACKAGE
    UTL_COLL PACKAGE BODY
    UTL_FILE PACKAGE
    UTL_FILE PACKAGE BODY
    UTL_HTTP PACKAGE
    UTL_HTTP PACKAGE BODY
    UTL_INADDR PACKAGE
    UTL_INADDR PACKAGE BODY
    UTL_RAW PACKAGE BODY
    UTL_REF PACKAGE
    UTL_REF PACKAGE BODY
    UTL_SMTP PACKAGE
    UTL_SMTP PACKAGE BODY
    UTL_TCP PACKAGE
    UTL_TCP PACKAGE BODY
    WAR_DEPLOYMENT PACKAGE
    WAR_DEPLOYMENT PACKAGE BODY
    WITH_GRANT_OPTION FUNCTION
    WPG_DOCLOAD PACKAGE
    WPG_DOCLOAD PACKAGE BODY
    WPIUTL PACKAGE
    WPIUTL PACKAGE BODY
    XMLATTRCOVER PACKAGE
    XMLCHARDATACOVER PACKAGE
    XMLDOCUMENTCOVER PACKAGE
    XMLDOM PACKAGE
    XMLDOM PACKAGE BODY
    XMLDOMIMPLCOVER PACKAGE
    XMLDTDCOVER PACKAGE
    XMLELEMENTCOVER PACKAGE
    XMLENTITYCOVER PACKAGE
    XMLGEN PACKAGE
    XMLGEN PACKAGE BODY
    XMLNNMCOVER PACKAGE
    XMLNODECOVER PACKAGE
    XMLNODELISTCOVER PACKAGE
    XMLNOTATIONCOVER PACKAGE
    XMLPARSER PACKAGE
    XMLPARSER PACKAGE BODY
    XMLPARSERCOVER PACKAGE
    XMLPICOVER PACKAGE
    XMLTEXTCOVER PACKAGE
    XSLPROCESSOR PACKAGE
    XSLPROCESSOR PACKAGE BODY
    XSLPROCESSORCOVER PACKAGE
    XSLSTYLESHEETCOVER PACKAGE
    ALLREPCOLUMN VIEW
    ALLREPFLAVOR_OBJECTS VIEW
    DBMS_REPCAT_AUTH PACKAGE
    DBMS_REPCAT_AUTH PACKAGE BODY
    DEF$_PROPAGATOR_TRIG TRIGGER
    ORA$_SYS_REP_AUTH PROCEDURE
    REPCATLOGTRIG TRIGGER
    CARTRIDGE PACKAGE
    CARTRIDGE PACKAGE BODY
    IM PACKAGE
    IM PACKAGE BODY
    ORDANNOTATION TYPE
    ORDANNOTATIONLIST TYPE
    ORDANNOTATIONS TYPE
    ORDANNOTATIONS PACKAGE BODY
    ORDAUDIO TYPE
    ORDAUDIO PACKAGE BODY
    ORDAUDIO_PKG PACKAGE
    ORDAUDIO_PKG PACKAGE BODY
    ORDIMAGE TYPE
    ORDIMAGE PACKAGE BODY
    ORDIMAGECONSTANTS PACKAGE
    ORDIMERRORCODES PACKAGE
    ORDIMERRORCODES PACKAGE BODY
    ORDIMGB TYPE
    ORDIMGB PACKAGE BODY
    ORDIMGF TYPE
    ORDIMGF PACKAGE BODY
    ORDIMG_PKG PACKAGE
    ORDIMG_PKG PACKAGE BODY
    ORDSOURCE TYPE
    ORDSOURCE PACKAGE BODY
    ORDVIDEO TYPE
    ORDVIDEO PACKAGE BODY
    ORDVIDEO_PKG PACKAGE
    ORDVIDEO_PKG PACKAGE BODY
    ORDVIR TYPE
    ORDVIR PACKAGE BODY
    ORDVIRATTR_VARRAY TYPE
    ORDVIRB TYPE
    ORDVIRB PACKAGE BODY
    ORDVIREXCEPTIONS PACKAGE
    ORDVIRF TYPE
    ORDVIRF PACKAGE BODY
    ORDVIRIDX INDEXTYPE
    ORDVIRIDXMETHODS TYPE
    ORDVIRIDXMETHODS PACKAGE BODY
    ORDVIRIDXSTATS TYPE
    ORDVIRIDXSTATS PACKAGE BODY
    ORDVIRROWID_TABLE TYPE
    ORDVIRSCR_VARRAY TYPE
    ORDVIR_PKG PACKAGE
    ORDVIR_PKG PACKAGE BODY
    PVTCARTRIDGE PACKAGE
    PVTCARTRIDGE PACKAGE BODY
    VIRSCORE OPERATOR
    VIRSIMILAR OPERATOR
    ORDX_AIFC_AUDIO PACKAGE
    ORDX_AIFC_AUDIO PACKAGE BODY
    ORDX_AIFF_AUDIO PACKAGE
    ORDX_AIFF_AUDIO PACKAGE BODY
    ORDX_AUFF_AUDIO PACKAGE
    ORDX_AUFF_AUDIO PACKAGE BODY
    ORDX_AVI_VIDEO PACKAGE
    ORDX_AVI_VIDEO PACKAGE BODY
    ORDX_DEFAULT_AUDIO PACKAGE
    ORDX_DEFAULT_AUDIO PACKAGE BODY
    ORDX_DEFAULT_VIDEO PACKAGE
    ORDX_DEFAULT_VIDEO PACKAGE BODY
    ORDX_FILE_SOURCE PACKAGE
    ORDX_FILE_SOURCE PACKAGE BODY
    ORDX_HTTP_SOURCE PACKAGE
    ORDX_HTTP_SOURCE PACKAGE BODY
    ORDX_MOOV_VIDEO PACKAGE
    ORDX_MOOV_VIDEO PACKAGE BODY
    ORDX_MPEG_VIDEO PACKAGE
    ORDX_MPEG_VIDEO PACKAGE BODY
    ORDX_MPGA_AUDIO PACKAGE
    ORDX_MPGA_AUDIO PACKAGE BODY
    ORDX_RMFF_VIDEO PACKAGE
    ORDX_RMFF_VIDEO PACKAGE BODY
    ORDX_WAVE_AUDIO PACKAGE
    ORDX_WAVE_AUDIO PACKAGE BODY
    ALL_GEOMETRY_COLUMNS VIEW
    ALL_MD_COLUMNS VIEW
    ALL_MD_DIMENSIONS VIEW
    ALL_MD_EXCEPTIONS VIEW
    ALL_MD_LOADER_ERRORS VIEW
    ALL_MD_PARTITIONS VIEW
    ALL_MD_TABLES VIEW
    ALL_MD_TABLESPACES VIEW
    ALL_SDO_GEOM_METADATA VIEW
    ALL_SDO_INDEX_INFO VIEW
    DBA_MD_COLUMNS VIEW
    DBA_MD_PARTITIONS VIEW
    DBA_MD_TABLES VIEW
    DBA_MD_TABLESPACES VIEW
    DBA_SDO_GEOM_METADATA VIEW
    DBA_SDO_INDEX_INFO VIEW
    DBA_SDO_INDEX_METADATA VIEW
    F81_INDEX_OBJECT TYPE
    F81_INDEX_OBJ_ARRAY TYPE
    F81_NT_IND_TYPE TYPE
    GEOCODER_HTTP PACKAGE
    GEOCODER_HTTP PACKAGE BODY
    GEOCODE_RESULT TYPE
    GEODETIC_SRIDS VIEW
    H81_INDEX_OBJECT TYPE
    H81_INDEX_OBJ_ARRAY TYPE
    H81_NT_IND_TYPE TYPE
    LOCATOR_WITHIN_DISTANCE OPERATOR
    MD PACKAGE
    MD PACKAGE BODY
    MD1 PACKAGE
    MD1 PACKAGE BODY
    MD2 PACKAGE
    MD2 PACKAGE BODY
    MDBOOTSTRAP PACKAGE
    MDBOOTSTRAP PACKAGE BODY
    MDDICT PACKAGE
    MDDICT PACKAGE BODY
    MDERR PACKAGE
    MDERR PACKAGE BODY
    MDEXEC PACKAGE
    MDEXEC PACKAGE BODY
    MDEXEX PACKAGE
    MDEXEX PACKAGE BODY
    MDGEN PACKAGE
    MDGEN PACKAGE BODY
    MDLEXR PACKAGE
    MDLEXR PACKAGE BODY
    MDLIB PACKAGE
    MDLIB PACKAGE BODY
    MDTRIG PACKAGE
    MDTRIG PACKAGE BODY
    MDVERIFY PACKAGE
    MDVERIFY PACKAGE BODY
    MD_DDL PACKAGE
    MD_DDL PACKAGE BODY
    MD_DML PACKAGE
    MD_DML PACKAGE BODY
    MD_PART PACKAGE
    MD_PART PACKAGE BODY
    PRVT_IDX PACKAGE
    PRVT_IDX PACKAGE BODY
    RTREE_FILTER OPERATOR
    RTREE_IDX PACKAGE
    RTREE_IDX PACKAGE BODY
    RTREE_INDEX INDEXTYPE
    RTREE_INDEX_METHOD TYPE
    RTREE_INDEX_METHOD PACKAGE BODY
    RTREE_NN OPERATOR
    SDO PACKAGE
    SDO PACKAGE BODY
    SDO_3GL PACKAGE
    SDO_3GL PACKAGE BODY
    SDO_ADMIN PACKAGE
    SDO_ADMIN PACKAGE BODY
    SDO_CATALOG PACKAGE
    SDO_CATALOG PACKAGE BODY
    SDO_CS PACKAGE
    SDO_CS PACKAGE BODY
    SDO_DIM_ARRAY TYPE
    SDO_DIM_ELEMENT TYPE
    SDO_ELEM_INFO_ARRAY TYPE
    SDO_FILTER OPERATOR
    SDO_GEOM PACKAGE
    SDO_GEOM PACKAGE BODY
    SDO_GEOMETRY TYPE
    SDO_GEOM_TRIG_DEL1 TRIGGER
    SDO_GEOM_TRIG_INS1 TRIGGER
    SDO_GEOM_TRIG_UPD1 TRIGGER
    SDO_IDX PACKAGE
    SDO_IDX PACKAGE BODY
    SDO_INDEX_METHOD TYPE
    SDO_INDEX_METHOD PACKAGE BODY
    SDO_INT2_FILTER OPERATOR
    SDO_INT2_RELATE OPERATOR
    SDO_INT_FILTER OPERATOR
    SDO_INT_RELATE OPERATOR
    SDO_LRS PACKAGE
    SDO_LRS PACKAGE BODY
    SDO_MBR TYPE
    SDO_META PACKAGE
    SDO_META PACKAGE BODY
    SDO_MIGRATE PACKAGE
    SDO_MIGRATE PACKAGE BODY
    SDO_NN OPERATOR
    SDO_ORDINATE_ARRAY TYPE
    SDO_POINT_TYPE TYPE
    SDO_RELATE OPERATOR
    SDO_RELATEMASK_TABLE VIEW
    SDO_RELATE_MASK PACKAGE
    SDO_RELATE_MASK PACKAGE BODY
    SDO_RTREE_ADMIN PACKAGE
    SDO_RTREE_ADMIN PACKAGE BODY
    SDO_RTREE_FILTER OPERATOR
    SDO_RTREE_RELATE OPERATOR
    SDO_TUNE PACKAGE
    SDO_TUNE PACKAGE BODY
    SDO_VPOINT_TYPE TYPE
    SDO_WITHIN_DISTANCE OPERATOR
    SERV_PART PACKAGE
    SERV_PART PACKAGE BODY
    SPATIAL_INDEX INDEXTYPE
    USER_MD_COLUMNS VIEW
    USER_SDO_GEOM_METADATA VIEW
    USER_SDO_INDEX_INFO VIEW
    USER_SDO_INDEX_METADATA VIEW
    V81_INDEX_OBJECT TYPE
    V81_INDEX_OBJ_ARRAY TYPE
    V81_NT_IND_TYPE TYPE
    CATINDEXMETHODS TYPE
    CATINDEXMETHODS PACKAGE BODY
    CATSEARCH OPERATOR
    CONTAINS OPERATOR
    CONTEXT INDEXTYPE
    CTXCAT INDEXTYPE
    CTX_ADM PACKAGE
    CTX_ADM PACKAGE BODY
    CTX_CATSEARCH PACKAGE
    CTX_CONTAINS PACKAGE
    CTX_DDL PACKAGE
    CTX_DDL PACKAGE BODY
    CTX_DOC PACKAGE
    CTX_DOC PACKAGE BODY
    CTX_FEEDBACK_ITEM_TYPE TYPE
    CTX_FEEDBACK_ITEM_TYPE PACKAGE BODY
    CTX_FEEDBACK_TYPE TYPE
    CTX_OUTPUT PACKAGE
    CTX_OUTPUT PACKAGE BODY
    CTX_QUERY PACKAGE
    CTX_QUERY PACKAGE BODY
    CTX_SERVERS VIEW
    CTX_THES PACKAGE
    CTX_THES PACKAGE BODY
    DRIACC PACKAGE
    DRIACC PACKAGE BODY
    DRIADM PACKAGE
    DRIADM PACKAGE BODY
    DRICON PACKAGE
    DRICON PACKAGE BODY
    DRIDDL PACKAGE
    DRIDDL PACKAGE BODY
    DRIDDLC PACKAGE
    DRIDDLC PACKAGE BODY
    DRIDISP PACKAGE
    DRIDISP PACKAGE BODY
    DRIDML PACKAGE
    DRIDML PACKAGE BODY
    DRIDOC PACKAGE
    DRIDOC PACKAGE BODY
    DRIEXP PACKAGE
    DRIEXP PACKAGE BODY
    DRIG PACKAGE
    DRIIMP PACKAGE
    DRIIMP PACKAGE BODY
    DRILIST PACKAGE
    DRILIST PACKAGE BODY
    DRILOAD PACKAGE
    DRILOAD PACKAGE BODY
    DRIOBJ PACKAGE
    DRIOPT PACKAGE
    DRIOPT PACKAGE BODY
    DRIPARSE PACKAGE
    DRIPARSE PACKAGE BODY
    DRIPIPE PACKAGE
    DRIPIPE PACKAGE BODY
    DRIPREF PACKAGE
    DRIPREF PACKAGE BODY
    DRIREC PACKAGE
    DRIREC PACKAGE BODY
    DRISCORE PACKAGE
    DRITHS PACKAGE
    DRITHS PACKAGE BODY
    DRITHSC PACKAGE
    DRITHSC PACKAGE BODY
    DRITHSD PACKAGE
    DRITHSD PACKAGE BODY
    DRITHSL PACKAGE
    DRITHSL PACKAGE BODY
    DRITHSX PACKAGE
    DRITHSX PACKAGE BODY
    DRIUTL PACKAGE
    DRIUTL PACKAGE BODY
    DRIVAL PACKAGE
    DRIVAL PACKAGE BODY
    DRIXTAB PACKAGE
    DRIXTAB PACKAGE BODY
    DRUE PACKAGE
    DRUE PACKAGE BODY
    DR_DEF PACKAGE
    SCORE OPERATOR
    SYNCRN PROCEDURE
    TEXTINDEXMETHODS TYPE
    TEXTINDEXMETHODS PACKAGE BODY
    TEXTOPTSTATS TYPE
    TEXTOPTSTATS PACKAGE BODY
    FOOTESTCREATE FUNCTION
    IMP_GET_SOFT_CONNS PROCEDURE
    IMP_LOAD_ALLCONNINFO PROCEDURE
    LOAD_DANGLE_REPORT PROCEDURE
    NQT_INFO PROCEDURE
    RTL_LEAF_DANGLE_REPORT PROCEDURE
    TOPSIGNAME FUNCTION
    TOPSIGNAME_RTL FUNCTION
    891 rows selected.
    SVRMGR>

Maybe you are looking for

  • Access denied. Error in File C:\WINDOWS\TEMP\

    I have searched on Google and all over this forum and none of the solutions have fixed my problem. Crystal Version: Crsytal.Net for Visual Studio.Net 2005 Server: Windows Server 2003 Error: Access denied. Error in File C:\WINDOWS\TEMP\JuryDutyReport

  • 10.8.5 Update - Finder and Lots of apps crash

    Hi All - I've been anxiously awaiting for the screensaver fixes to be resolved that were caused in recent updates, so I installed 10.8.5 which apparently came out today and my 2013 iMac now is constantly telling me that apps are quitting unexpectedly

  • RFC-XI-JDBC testing is not working

    Hi, I created rfc-xi-jdbc. I created 2 dt, 2 msg types, 2 msg mappings, 1 msg interface(synchronous, abstract), 1 interface mapping. In the CD, I defined, 1 sender, 1 receiver agreement. 1 receiver, 1 sender determination, 1 interface determination,

  • Is Dynamic Loading of Text from an external file possible in Captivate?

    Hello all, I am wondering if Dynamic loading of text is possible in captivate or not. As we can load an external file in flash. & which is the universal font to be used for the text entry box which will visible on any media? Thanks & Regards, Chirag

  • Can't set memory or northbridge voltage

    Hello, i have a MSI P35 Neo-F, and if i try to increase the memory or northbridge voltage just 0.1v, the board wont boot. I think the default vdimm voltage is 1.8 or 1.9, but my memory sticks require 2.2v. But my pc starts up fine and is stable when