Schema owner with DDL privileges only

Hi,
Oracle 11.2.0.2
What is the easiest way of creating a schema owner that can own all the schema objects (tables, viws, procedures etc) WITHOUT being able to see the data in tables. In short can do DDL without being able to DQ or DML.
Thanks

905989 wrote:
Hi,
Oracle 11.2.0.2
What is the easiest way of creating a schema owner that can own all the schema objects (tables, viws, procedures etc) WITHOUT being able to see the data in tables. In short can do DDL without being able to DQ or DML.
Thanks
do not do as below
GRANT CREATE SESSION TO SCHEMA_OWNER;
If SCHEMA_OWNER can not log into the DB, then they can not do DML or SELECT.

Similar Messages

  • How to restrict a schema owner from granting privileges to other users.

    How can we restrict a schema owner from granting privileges to other users on his objects (e.g. tables). Lets say we have user called XYZ and he has tables in his schema TAB1, TAB2 an TAB3. How can we restrict user XYZ from granting privileges on TAB1, TAB2 and TAB3 to other users in the database. Is it possible in Oracle 10g R2? Any indirect or direct way to achieve this? Please help on this.
    Thanks,
    Manohar

    Whenever someone is trying to prevent an object owner from doing something, that's generally a sign of a deeper problem. In a production database, the object owner shouldn't generally have CREATE SESSION privileges, so the user shouldn't be able to log in, which would prevent the user from issuing any grants.
    As a general rule, you cannot stop an object owner from granting privileges on the objects it owns. You can work around this by creating a database-level DDL trigger that throws an exception if the user issuing the statement is XYZ and the DDL is a GRANT. But long term, you probably want to get to the root of the problem.
    Justin
    Edited by: Justin Cave on Nov 6, 2008 9:52 PM
    Enrique beat me to it.

  • Create user with select privilege only one schema

    can someone tell me how i can create user with select priviliges only one schema.
    i don't want the user to have any select privileges with other schema.
    can someone advise me.
    Thansk

    In general, you would do something like
    CREATE ROLE abc_read_only;
    FOR x IN (SELECT * FROM dba_tables WHERE owner='ABC')
    LOOP
      EXECUTE IMMEDIATE 'GRANT SELECT ON abc.' || x.table_name || ' TO abc_read_only';
    END LOOP;
    CREATE USER your_user ...;
    GRANT abc_read_only TO your_userYou create a role, grant the role SELECT access to all the tables in the ABC schema (you can extend this to grant access to views, functions, etc depending on the requirements), and then grant that role to your user.
    Justin

  • Oracle APPS schema copy with all privileges to new schema and table space

    Hi all,
    Here is scenario:
    I have installed e-business suite in windows 2003 server for training environment using production (prod), single node and without vision (demo).
    i have to create a new table space in e:\oracle\prodmanz with similar content as in proddata and create a new schema called manz with same privileges as APPS.
    Kindly advice.
    Manish Kumar Chudasama
    email: [email protected] cc to [email protected]
    Thanks in advance guys.

    Hi Khalid,
    Ideally when you execute sql 'create schema <schema_name>' then the logged in user is going to default owner of the schema and you should see that under 'object privileges' of that user.
    The user will have 'create any' privileges which means the user has all the privileges on that schema.
    if you want to check who is owner of the schema in the system, please check 'SCHEMAS' under views in SYS.
    Regards,
    Venkat N.

  • Is there a way to revoke DDL privileges from a user

    I would like to revoke DDL privileges from a user.
    My requirement goes like this
    1.Create a user with DDL privileges
    2. Create the required tables in that user. Fill the data.
    3. Revoke DDL privileges from that user (CREATE,ALTER,DROP).
    I was able to achieve this by creating two users where in the 1st user contains all the physical objects and data, where in the 2nd user contains only synonyms with select/execute privileges.
    Is there any other way to achieve this.
    Bcoz in SQL SERVER 2005 we have
    REVOKE ALTER TABLE FROM USER; and likewise.
    Kindly help me out!
    Thnx in advance

    You can easily satisfy all your requirements using facilities provided by the database. Here is a sample:
    SQL&gt; create user test identified by test;
    User created.
    SQL&gt; grant create session to test;
    Grant succeeded.
    SQL&gt; connect test/test
    SQL&gt; CREATE TABLE ddl_in_my_schema(x number);
    CREATE TABLE ddl_in_my_schema(x number)
    ERROR at line 1:
    ORA-01031: insufficient privileges
    -- Connect as administrator
    SQL&gt; GRANT CREATE TABLE TO test;
    Grant succeeded.
    SQL&gt; ALTER USER test QUOTA 10M ON USERS;
    User altered.
    SQL&gt; connect test/test
    Connected.
    Session altered.
    SQL&gt; CREATE TABLE ddl_table(x number);
    Table created.
    SQL&gt; INSERT INTO ddl_table SELECT OBJECT_ID FROM ALL_OBJECTS;
    4468 rows created.
    -- Connect as administrator again
    SQL&gt; REVOKE CREATE TABLE FROM test;
    Revoke succeeded.
    SQL&gt; connect test/test
    Connected.
    SQL&gt; CREATE TABLE ddl_table2(x number);
    CREATE TABLE ddl_table2(x number)
    ERROR at line 1:
    ORA-01031: insufficient privileges

  • Export/Import with apps user or EUL schema owner ?

    Hi,
    I am working with a migration plan to move Discoverer 9 to Discoverer 10.
    It is an apps mode EUL, where business areas and workbooks have been granted to Apps Users & Responsibilities.
    Customer has only maintained the EUL with the database user of the EUL owner.
    What is recommended for exporting/importing the EUL from 9 to 10.
    To connect to Administrator as the EUL owner, or to connect as an apps user ( SYSADMIN ? )
    Will all the grants to apps users/responsibilities work when importing as schema owner ?
    I tried to create a entire EUL export file connected as EUL owner, and for the workbooks the export log contained :
    1234#.Workbook name1
    2345#.Workbook name 2
    1234 is the user_id for the workbook owner ( All workbooks have been created by an apps user )
    Will the import process manage to convert this user_id, and set the correct owner for the imported workbooks ?
    ( I will use the option Only take ownership if original owner not found )
    I am not sure, but I think I have seen the following syntax in other projects when exporting an apps mode EUL
    SYSADMIN.Workbook name 1
    SYSADMIN.Workbook name 2

    >
    What is recommended for exporting/importing the EUL from 9 to 10.
    To connect to Administrator as the EUL owner, or to connect as an apps user ( SYSADMIN ? )
    Will all the grants to apps users/responsibilities work when importing as schema owner ?
    Hi,
    The best that i know is that you should export using the DB user so that you will not have problem with workbooks or BA that you are not granted for (or any other grants or privileges).
    The import should be done using the APPS user (the super user you use).
    That way if you import a workbook that the owner will not be found then you will get the ownership and you can after migration deal with it.
    If you'll do that with the DB (EUL owner) user after migration you will not have access to those workbooks.
    Any way about the workbooks i suggest you'll save them as DIS files for cases that the import of the workbooks or the owner association for them fail.

  • Including Schema owner when generating DDL scripts

    Designer 9.0.4.6
    How do i set the option to include the schema owner prefix in the DDL scripts being generate ("generate server model from database") in design editor?

    Generating from the DB Admin tab does not prefix the objects I am generating with the schema name. There isn't a generator preference (that I've found at least) to accomplish this. Has anyone been able to generate database objects prefixed with the schema name?
    Thanks,
    Wayne

  • Database restore with same SID and different schema owner

    Dear all,
    I have quality system on HP-UX oracle platform which has been upgraded from 4.6C to ECC 5.0
    and schema owner for the database is still SAPR3
    I have installed new Test system with version ECC 5.0 with same SID and now i need to refresh its database with Data from QAS system ... owner at Test system is SAPC11 which is new installation ECC 5.0 and where SID is C11.
    I need to know once i restore data what steps i need to carry out at Test system
    i.e like change ENV settings from SAPC11 to SAPR3.
    Please note SID is same on both hosts. and owner is different SAPR3 and SAPC11
    Regards,
    RR

    Dear all ,
    Thanks for your views . but i have already installed ECC 5.0 on
    target machine with schema owner as default SAPC11 (sid)
    Is there any other way out ... instead of doing reinstallation with schema owner SAPR3 / instead of doing Export-Import system copy method which again is as good as reinstallation.
    I would like to have your views on following ,
    when i will restore database from source to taget
    al tables in target machine will be having owner as SAPR3 ( which came from source ) ...but my DB owner at Target machine is SAPC11 ( as far as ENV and all profiles are concerned ) .... cant i use SAPR3 user which got restored with backup of source to target to start my instance at Target machine... may be by changing ENV settings.
    I really appreciate and thank you in adavance for sharing your views.
    Regards,
    RR

  • Using an NT user with DBA privileges does not permit to create schema : why ?

    Hi,
    I use an Oracle 8 on an Windows NT server.
    I have two NT users with DBA privileges.
    But, when I use the migration workbench to create the oracle schema, my users are not granted.
    Why ?
    Regards.
    Pascal

    Please clarify your problem.
    The workbench creates users (which are visible in the oracle model within the tool) with the password oracle .
    I am not sure if you are asking about accessing the database using your OS user identity, or have you found that the users exist but do not have dba privileges.
    Turloch
    Oracle Migration Workbench Team
    null

  • HT1373 See authorized computers - why is this question not answered?  Apparently, Apple wil not expose this information to the account owner.  Is is only possible to rate this article with 1-5 stars - not with zero stars?

    See authorized computers - why is this question not answered?  Apparently, Apple wil not expose this information to the account owner.  Is is only possible to rate this article with 1-5 stars - not with zero stars?

    Yep, you're right. Just 1-5 stars.

  • SELECT on XML DB Table works for Schema owner, not for Schema user

    Hi,
    We are working on Oracle 10.2.0.3 under HP-UX.
    We get ORA-01031: Insufficient Privileges when trying to execute Query
    on Oracle XMLDB Table by Schema User
    Here are detailed steps:
    1) We have 2 users: CDROWNER (Schema Owner)
    CDRJAVA (Schema User)
    2) login as CDROWNER and execute following:
    3) Register 2 XSDs (Common is used by CorridorRate)
    Common.xsd:
    <?xml version="1.0" encoding="utf-8"?>
    <!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by Kent Williamson (OOCL (USA) INC) -->
    <xsd:schema xmlns="http://com.oocl.schema.tnm.agreementbuilder" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" xmlns:tnm="http://com.oocl.schema.tnm" xmlns:common="http://com.oocl.schema.common" xmlns:fwd="http://com.oocl.frm.common.date.dto/" xmlns:customer="http://com.oocl.schema.customer" xmlns:eqm="http://com.oocl.schema.eqm" targetNamespace="http://com.oocl.schema.tnm.agreementbuilder" elementFormDefault="qualified" attributeFormDefault="unqualified" xdb:storeVarrayAsTable="true">
         <xsd:complexType name="NamedCustomer_V1" xdb:SQLType="NAMED_CUSTOMER_T">
              <xsd:annotation>
                   <xsd:documentation>Named customer for the quote</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="SAP_IDS" type="SAPIDCollection_V1" minOccurs="0" xdb:SQLName="SAP_IDS">
                        <xsd:annotation>
                             <xsd:documentation xml:lang="en">
    </xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="BookingConditions" type="xsd:string" minOccurs="0" xdb:SQLName="BOOKING_CONDITIONS"/>
                   <xsd:element name="BLConditions" type="xsd:int" xdb:SQLName="BL_CONDITIONS"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="Attachment_V1" xdb:SQLType="ATTACHMENT_T">
              <xsd:annotation>
                   <xsd:documentation>Quote attachment</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="Url" type="xsd:string" minOccurs="0" xdb:SQLName="ATTACH_URL"/>
                   <xsd:element name="Text" type="xsd:string" minOccurs="0" xdb:SQLName="ATTACH_TEXT"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="SentOfferingRecord_V1" xdb:SQLType="SENT_OFFERING_RECORD_T">
              <xsd:annotation>
                   <xsd:documentation>Record of quote sending out to customer</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="TimeSent" type="xsd:string" minOccurs="0" xdb:SQLName="TIME_SENT"/>
                   <xsd:element name="UserName" type="xsd:string" minOccurs="0" xdb:SQLName="USER_NAME"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="QuoteFormatSettings_V1" xdb:SQLType="QUOTE_FMT_SETTINGS_T">
              <xsd:annotation>
                   <xsd:documentation>Quote format setting specification</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="TemplateName" type="xsd:string" minOccurs="0" xdb:SQLName="TEMPLATE_NAME">
                        <xsd:annotation>
                             <xsd:documentation>predefined format template</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="OptionalContentIDs" type="StringWrapper_V1" minOccurs="0" maxOccurs="unbounded" xdb:SQLName="OPTIONAL_CONTENTS" xdb:SQLCollType="OPTIONAL_CONTENT_V">
                        <xsd:annotation>
                             <xsd:documentation>optional contents</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="StandardRemarkIDs" type="IDWrapper_V1" minOccurs="0" maxOccurs="unbounded" xdb:SQLName="STANDARD_REMARKS" xdb:SQLCollType="STANDARD_REMARK_V">
                        <xsd:annotation>
                             <xsd:documentation>standard remarks specified by each region/office</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="StandardDisclaimerID" type="ID_LongNumeric_V1" minOccurs="0" xdb:SQLName="STANDARD_DISCLAIMER">
                        <xsd:annotation>
                             <xsd:documentation>standard disclaimer specified by each region/office</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="ShowSurcharges" type="ShowSurchargeType_V1" xdb:SQLName="SHOW_SURCHARGES">
                        <xsd:annotation>
                             <xsd:documentation>specifies how surcharges are shown in the offering document, can be show prepaid only, collect only or all</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:simpleType name="SurchargeCode_V1">
              <xsd:restriction base="xsd:string"/>
         </xsd:simpleType>
         <xsd:simpleType name="ShowSurchargeType_V1">
              <xsd:annotation>
                   <xsd:documentation>Indicator for quote to show prepaid, collect or all surcharges</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:enumeration value="Prepaid"/>
                   <xsd:enumeration value="Collect"/>
                   <xsd:enumeration value="All"/>
              </xsd:restriction>
         </xsd:simpleType>
         <xsd:complexType name="StandardRemarkAndDisclaimer_V1" xdb:SQLType="STD_REMARK_AND_DISCLAIMER_T">
              <xsd:annotation>
                   <xsd:documentation>Region specific standard remark and disclaimer</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="Id" type="xsd:string" minOccurs="0" xdb:SQLName="STD_REMARK_ID"/>
                   <xsd:element name="Region" type="xsd:string" minOccurs="0" xdb:SQLName="STD_REMARK_REGION"/>
                   <xsd:element name="IsRemark" type="xsd:boolean" xdb:SQLName="IS_REMARK"/>
              </xsd:sequence>
         </xsd:complexType>
         <!-- END Jianming Original XSD -->
         <!-- -->
         <!-- All Simple/Complex Types defined below have been copied from External XSD Files -->
         <!-- -->
         <!-- Complex Wrapper types are needed since 10.2 Oracle XMLDB does not support indexing unbounded simple types -->
         <xsd:complexType name="GeoIDCollection_V1" xdb:SQLType="GEO_ID_COLLECTION_T">
              <xsd:sequence>
                   <xsd:element name="IDWrappers" type="IDWrapper_V1" maxOccurs="unbounded" xdb:SQLName="GEO_ID_WRAPPERS" xdb:SQLCollType="GEO_ID_WRAPPER_V"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="IDWrapper_V1" xdb:SQLType="ID_WRAPPER_T">
              <xsd:sequence>
                   <xsd:element name="Value" type="ID_LongNumeric_V1" xdb:SQLName="ID_VAL"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="OfficeCodeCollection_V1" xdb:SQLType="OFFICE_CODE_COLLECTION_T">
              <xsd:sequence>
                   <xsd:element name="StringWrappers" type="StringWrapper_V1" maxOccurs="unbounded" xdb:SQLName="STRING_WRAPPERS" xdb:SQLCollType="OFFICE_CODE_V"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="SAPIDCollection_V1" xdb:SQLType="SAP_ID_COLLECTION_T">
              <xsd:sequence>
                   <xsd:element name="StringWrappers" type="StringWrapper_V1" maxOccurs="unbounded" xdb:SQLName="STRING_WRAPPERS" xdb:SQLCollType="SAP_ID_V"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="ServiceLoopCodeCollection_V1" xdb:SQLType="SERVICE_LOOP_CODE_COLLECTION_T">
              <xsd:sequence>
                   <xsd:element name="StringWrappers" type="StringWrapper_V1" maxOccurs="unbounded" xdb:SQLName="STRING_WRAPPERS" xdb:SQLCollType="SERVICE_LOOP_CODE_V"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="IncludedHSCodeCollection_V1" xdb:SQLType="INCLUDED_HS_CODE_COLLECTION_T">
              <xsd:sequence>
                   <xsd:element name="StringWrappers" type="StringWrapper_V1" maxOccurs="unbounded" xdb:SQLName="STRING_WRAPPERS" xdb:SQLCollType="INCLUDED_HS_CODE_V"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="StringWrapper_V1" xdb:SQLType="STRING_WRAPPER_T">
              <xsd:sequence>
                   <xsd:element name="Value" xdb:SQLName="STR_VAL">
                        <xsd:simpleType>
                             <xsd:restriction base="xsd:string">
                                  <xsd:maxLength value="256"/>
                             </xsd:restriction>
                        </xsd:simpleType>
                   </xsd:element>
              </xsd:sequence>
         </xsd:complexType>
         <!-- Below copied from tnm.agreementbuilder:GuidelineRateReference_V1.xsd -->
         <xsd:complexType name="GuidelineRateReference_V1">
              <xsd:annotation>
                   <xsd:documentation>Represents a guideline rate containing an ocean rate and up to 4 inland/port arbitrary add-on rates</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="OutboundInlandRate1ID" type="ID_LongNumeric_V1" minOccurs="0">
                        <xsd:annotation>
                             <xsd:documentation>The first outbound inland rate. If present, the location of this rate is always the point of receipt. Otherwise the point of receipt is (one of) the Trunk origin(s). The over location must match with either OB2 Location or Trunk Origin (if OB2 is not present)</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="OutboundInlandRate2ID" type="ID_LongNumeric_V1" minOccurs="0">
                        <xsd:annotation>
                             <xsd:documentation>An optional outbound inland rate. If present, the location must match with the over location of OB1 and the over location of this rate must match with the origin of the Trunk.</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="BaseRateID" type="ID_LongNumeric_V1">
                        <xsd:annotation>
                             <xsd:documentation>The BaseRate = trunk / ocean rate.</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="InboundInlandRate1ID" type="ID_LongNumeric_V1" minOccurs="0">
                        <xsd:annotation>
                             <xsd:documentation>The inbound rate connecting to the destination of the trunk. If there is only one inbound rate (IB2 is not present), then this rate will have the final destination. </xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="InboundInlandRate2ID" type="ID_LongNumeric_V1" minOccurs="0">
                        <xsd:annotation>
                             <xsd:documentation>A second inbound rate which connects to the first inbound rate to arrive at a final destination.</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
              </xsd:sequence>
         </xsd:complexType>
         <!-- Below copied from tnm:AgreementID_V1.xsd -->
         <xsd:simpleType name="AgreementID_V1">
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="20"/>
              </xsd:restriction>
         </xsd:simpleType>
         <!-- Below copied from tnm:AgreementStatus_V1.xsd -->
         <xsd:simpleType name="AgreementStatus_V1">
              <xsd:annotation>
                   <xsd:documentation>Agreement Status, like filed, approve, terminated, amend</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="20"/>
                   <xsd:enumeration value="File"/>
                   <xsd:enumeration value="Filed"/>
                   <xsd:enumeration value="Approve"/>
                   <xsd:enumeration value="Terminated"/>
                   <xsd:enumeration value="New"/>
                   <xsd:enumeration value="Incomplete"/>
                   <xsd:enumeration value="Amend"/>
              </xsd:restriction>
         </xsd:simpleType>
         <!-- Below copied from tnm:AgreementType_V1.xsd -->
         <xsd:simpleType name="AgreementType_V1">
              <xsd:annotation>
                   <xsd:documentation>Agreement type, like CSO, SC, AB</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="3"/>
                   <xsd:enumeration value="CSO">
                        <xsd:annotation>
                             <xsd:documentation>Customized Service Offering</xsd:documentation>
                        </xsd:annotation>
                   </xsd:enumeration>
                   <xsd:enumeration value="RA">
                        <xsd:annotation>
                             <xsd:documentation>Rate Agreement</xsd:documentation>
                        </xsd:annotation>
                   </xsd:enumeration>
                   <xsd:enumeration value="SVC">
                        <xsd:annotation>
                             <xsd:documentation>Service Agreement</xsd:documentation>
                        </xsd:annotation>
                   </xsd:enumeration>
                   <xsd:enumeration value="SUR">
                        <xsd:annotation>
                             <xsd:documentation>Surcharge Agreement</xsd:documentation>
                        </xsd:annotation>
                   </xsd:enumeration>
                   <xsd:enumeration value="SC">
                        <xsd:annotation>
                             <xsd:documentation>Service Contract</xsd:documentation>
                        </xsd:annotation>
                   </xsd:enumeration>
                   <xsd:enumeration value="TSO">
                        <xsd:annotation>
                             <xsd:documentation>Territorial Customized Service Offering</xsd:documentation>
                        </xsd:annotation>
                   </xsd:enumeration>
                   <xsd:enumeration value="TSA">
                        <xsd:annotation>
                             <xsd:documentation>Territorial Service Agreement</xsd:documentation>
                        </xsd:annotation>
                   </xsd:enumeration>
                   <xsd:enumeration value="AB">
                        <xsd:annotation>
                             <xsd:documentation>Agreement Builder</xsd:documentation>
                        </xsd:annotation>
                   </xsd:enumeration>
              </xsd:restriction>
         </xsd:simpleType>
         <!-- Below copied from tnm:TradeTerm_V1.xsd -->
         <xsd:simpleType name="TradeTerm_V1">
              <xsd:annotation>
                   <xsd:documentation>Trade term</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="10"/>
                   <xsd:enumeration value="FOB"/>
                   <xsd:enumeration value="CIF"/>
              </xsd:restriction>
         </xsd:simpleType>
         <!-- MODIFIED ABDateTime_V1 to be a simpleType of xsd:dateTime for DB storage -->
         <xsd:simpleType name="ABDateTime_V1">
              <xsd:restriction base="xsd:dateTime"/>
         </xsd:simpleType>
         <!-- Below copied from common:PersonName_V1.xsd -->
         <xsd:complexType name="PersonName_V1" xdb:SQLType="PERSON_NAME_T">
              <xsd:sequence>
                   <xsd:element name="FirstName" minOccurs="0" xdb:SQLName="FIRST_NAME">
                        <xsd:simpleType>
                             <xsd:restriction base="xsd:string"/>
                        </xsd:simpleType>
                   </xsd:element>
                   <xsd:element name="LastName" minOccurs="0" xdb:SQLName="LAST_NAME">
                        <xsd:simpleType>
                             <xsd:restriction base="xsd:string"/>
                        </xsd:simpleType>
                   </xsd:element>
              </xsd:sequence>
         </xsd:complexType>
         <!-- Below copied from common:EmailAddress_V1.xsd -->
         <xsd:complexType name="EmailAddress_V1" xdb:SQLType="EMAIL_ADDRESS_T">
              <xsd:sequence>
                   <xsd:annotation>
                        <xsd:documentation>
                        A common Type for EmailAddress.
                        </xsd:documentation>
                   </xsd:annotation>
                   <xsd:element name="EmailID" type="xsd:string" xdb:SQLName="EMAIL_ID"/>
                   <xsd:element name="EmailType" type="EmailType_V1" default="Unspecified" xdb:SQLName="EMAIL_TYPE"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:simpleType name="EmailType_V1">
              <xsd:restriction base="xsd:string">
                   <xsd:enumeration value="Home"/>
                   <xsd:enumeration value="Work"/>
                   <xsd:enumeration value="Unspecified"/>
              </xsd:restriction>
         </xsd:simpleType>
         <!-- Below copied from common:PhoneNumberType_V1.xsd.xsd -->
         <xsd:simpleType name="PhoneNumberType_V1">
              <xsd:annotation>
                   <xsd:documentation xml:lang="en">
                        Type refers to the contact number type associated to the contact number.
                        May include: Business Phone/Fax, Home Phone/Fax, Mobile Phone, Pager, Telex or Unspecified.                         
                   </xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:enumeration value="BusinessPhone"/>
                   <xsd:enumeration value="HomePhone"/>
                   <xsd:enumeration value="BusinessFax"/>
                   <xsd:enumeration value="HomeFax"/>
                   <xsd:enumeration value="MobilePhone"/>
                   <xsd:enumeration value="Pager"/>
                   <xsd:enumeration value="Telex"/>
                   <xsd:enumeration value="Unspecified"/>
              </xsd:restriction>
         </xsd:simpleType>
         <!-- Below copied from common:PhoneNumber_V1.xsd -->
         <xsd:complexType name="PhoneNumber_V1" xdb:SQLType="PHONE_NUMBER_T">
              <xsd:annotation>
                   <xsd:documentation xml:lang="en">
                        PhoneNumber is a common type that defines generic structure of a phone number object.
                   </xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="CountryCode" type="xsd:string" minOccurs="0" xdb:SQLName="COUNTRY_CODE">
                        <xsd:annotation>
                             <xsd:documentation xml:lang="en">
                                  CountryCode holds on the country code value.
                             </xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="AreaCode" type="xsd:string" minOccurs="0" xdb:SQLName="AREA_CODE">
                        <xsd:annotation>
                             <xsd:documentation xml:lang="en">
                                  AreaCode holds on the area code value.
                             </xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="Number" type="xsd:string" xdb:SQLName="PHONE_NUMBER">
                        <xsd:annotation>
                             <xsd:documentation xml:lang="en">
                                  Number holds on the number value.
                             </xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="Extension" type="xsd:string" minOccurs="0" xdb:SQLName="PHONE_EXTN">
                        <xsd:annotation>
                             <xsd:documentation xml:lang="en">
                                  Extension holds on the phone number extension, if applicable
                             </xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="Type" type="PhoneNumberType_V1" default="Unspecified" xdb:SQLName="PHONE_NUM_TYPE">
                        <xsd:annotation>
                             <xsd:documentation xml:lang="en">
                                  Type refers to the contact number type associated to the contact number.
                                  May include: Business Phone/Fax, Home Phone/Fax, Mobile Phone, Pager, Telex or Unspecified                         
                                  Default value is Unspecified.
                             </xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
              </xsd:sequence>
         </xsd:complexType>
         <!-- Below copied from common:ContactInformation_V1.xsd -->
         <xsd:complexType name="ContactInformation_V1" xdb:SQLType="CONTACT_INFORMATION_T">
              <xsd:sequence>
                   <xsd:element name="Name" type="PersonName_V1" minOccurs="0" xdb:SQLName="CONTACT_NAME"/>
                   <xsd:element name="EmailAddresses" type="EmailAddress_V1" minOccurs="0" maxOccurs="unbounded" xdb:SQLName="EMAIL_ADDRESSES" xdb:SQLCollType="EMAIL_ADDRESS_V"/>
                   <xsd:element name="PhoneNumbers" type="PhoneNumber_V1" minOccurs="0" maxOccurs="unbounded" xdb:SQLName="PHONE_NUMBERS" xdb:SQLCollType="PHONE_NUMBER_V"/>
              </xsd:sequence>
         </xsd:complexType>
         <!-- Below copied from common:CardinalDirection_V1.xsd -->
         <xsd:simpleType name="CardinalDirectionName_V1">
              <xsd:annotation>
                   <xsd:documentation>A list of voyage name direction.</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:enumeration value="North"/>
                   <xsd:enumeration value="South"/>
                   <xsd:enumeration value="East"/>
                   <xsd:enumeration value="West"/>
              </xsd:restriction>
         </xsd:simpleType>
         <!-- Below copied from common:CommonRestrictions_V1.xsd -->
         <xsd:simpleType name="ID_LongNumeric_V1">
              <xsd:annotation>
                   <xsd:documentation>Represents Identifier using long as the restriction - with max - 15 digits</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:long"/>
         </xsd:simpleType>
         <!-- Below copied from common:ServiceLoopCode_V1.xsd -->
         <xsd:simpleType name="ServiceLoopCode_V1">
              <xsd:annotation>
                   <xsd:documentation>A simple type that holds on to the service loop code.</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="4"/>
              </xsd:restriction>
         </xsd:simpleType>
         <!-- Below copied from common:Currency_V1.xsd -->
         <xsd:simpleType name="CurrencyCode_V1">
              <xsd:annotation>
                   <xsd:documentation>A 3 digit currency code string (like USD)</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:length value="3"/>
              </xsd:restriction>
         </xsd:simpleType>
         <!-- Below copied from tnm:TariffCode_V1.xsd -->
         <xsd:simpleType name="TariffCode_V1">
              <xsd:annotation>
                   <xsd:documentation>tariff code that uniquely identify a tariff</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:length value="3"/>
              </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType name="Global_UUID_V1">
              <xsd:annotation>
                   <xsd:documentation>This is to represent the largest UUID format in the domain. Max. length is 36.</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="36"/>
              </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType name="UUID_V1">
              <xsd:annotation>
                   <xsd:documentation>A system generated uuid in string format. Max. length is 20.</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="Global_UUID_V1">
                   <xsd:maxLength value="20"/>
              </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType name="CustomerContactRoleType_V1">
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="20"/>
                   <xsd:enumeration value="Accounting"/>
                   <xsd:enumeration value="Booking"/>
                   <xsd:enumeration value="Booking_CS"/>
                   <xsd:enumeration value="Documentation"/>
                   <xsd:enumeration value="General"/>
                   <xsd:enumeration value="Operations"/>
                   <xsd:enumeration value="Pricing"/>
                   <xsd:enumeration value="Sales"/>
                   <xsd:enumeration value="Sales_SMM"/>
                   <xsd:enumeration value="Warehouse"/>
              </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType name="TradeCode_V1">
              <xsd:annotation>
                   <xsd:documentation>A simple type that holds on to the trade code.</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="3"/>
              </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType name="ShipmentBoundCode_V1">
              <xsd:annotation>
                   <xsd:documentation>A list of shipment bound code.</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:enumeration value="IB"/>
                   <xsd:enumeration value="OB"/>
              </xsd:restriction>
         </xsd:simpleType>
         <xsd:complexType name="CustomerContactSpecification_V1" xdb:SQLType="CUST_CONTACT_SPEC_T">
              <xsd:sequence>
                   <xsd:element name="ContactSpecUUID" type="UUID_V1" xdb:SQLName="CONTACT_SPEC_UUID"/>
                   <xsd:element name="ContactUUID" type="UUID_V1" xdb:SQLName="CONTACT_UUID"/>
                   <xsd:element name="Role" type="CustomerContactRoleType_V1" xdb:SQLName="CONTACT_ROLE"/>
                   <xsd:element name="SAP_ID" type="SAP_ID_V1" minOccurs="0" xdb:SQLName="CUST_SAP_ID"/>
                   <xsd:element name="TradeCode" type="TradeCode_V1" minOccurs="0" xdb:SQLName="TRADE_CODE"/>
                   <xsd:element name="TradeLaneCode" type="TradeLaneCode_V1" minOccurs="0" xdb:SQLName="TRADE_LANE_CODE"/>
                   <xsd:element name="ServiceLoopCode" type="ServiceLoopCode_V1" minOccurs="0" xdb:SQLName="SERVICE_LOOP_CODE"/>
                   <xsd:element name="ShipmentBoundCode" type="ShipmentBoundCode_V1" minOccurs="0" xdb:SQLName="SHIPMENT_BOUND_CODE"/>
                   <xsd:element name="CommodityGroupCode" type="AlphaCode_V1" minOccurs="0" xdb:SQLName="COMMODITY_GROUP_CODE"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="CustomerContact_V1" xdb:SQLType="CUSTOMER_CONTACT_T">
              <xsd:annotation>
                   <xsd:documentation xml:lang="en">
                   This defines a contact for a Customer. A customer contact is someone to whom an OOCL sales representative communicates regarding business transactions between OOCL and the Customer.
                   </xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="ContactUUID" type="UUID_V1" xdb:SQLName="CONTACT_UUID"/>
                   <xsd:element name="ContactInformation" type="ContactInformation_V1" xdb:SQLName="CONTACT_INFORMATION"/>
                   <xsd:element name="SAP_ID" type="SAP_ID_V1" minOccurs="0" xdb:SQLName="SAP_ID"/>
                   <xsd:element name="Title" minOccurs="0" xdb:SQLName="TITLE">
                        <xsd:simpleType>
                             <xsd:restriction base="xsd:string">
                                  <xsd:maxLength value="35"/>
                             </xsd:restriction>
                        </xsd:simpleType>
                   </xsd:element>
                   <xsd:element name="JobTitle" minOccurs="0" xdb:SQLName="JOB_TITLE">
                        <xsd:simpleType>
                             <xsd:restriction base="xsd:string">
                                  <xsd:maxLength value="35"/>
                             </xsd:restriction>
                        </xsd:simpleType>
                   </xsd:element>
                   <xsd:element name="Department" minOccurs="0" xdb:SQLName="DEPARTMENT">
                        <xsd:simpleType>
                             <xsd:restriction base="xsd:string">
                                  <xsd:maxLength value="35"/>
                             </xsd:restriction>
                        </xsd:simpleType>
                   </xsd:element>
                   <xsd:element name="Specifications" type="CustomerContactSpecification_V1" minOccurs="0" maxOccurs="unbounded" xdb:SQLName="CUST_CONTACT_SPECS" xdb:SQLCollType="CUST_CONTACT_SPEC_V"/>
              </xsd:sequence>
         </xsd:complexType>
         <!-- Below copied from tnm:TradeLaneCode_V1.xsd -->
         <xsd:simpleType name="TradeLaneCode_V1">
              <xsd:annotation>
                   <xsd:documentation>A simple type that holds on to the trade lane code.</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="3"/>
              </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType name="CompanyName_V1">
              <xsd:annotation>
                   <xsd:documentation>Name of a Company
    This is used to denote the information about an organization which may not be a Customer</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="105"/>
                   <xsd:minLength value="1"/>
              </xsd:restriction>
         </xsd:simpleType>
         <!-- Below copied from CorridorBaseRate_V1.xsd -->
         <xsd:complexType name="CorridorBaseRate_V1" xdb:SQLType="CORRIDOR_BASE_RATE_T">
              <xsd:annotation>
                   <xsd:documentation>Corridor base rate specifications</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="SizeType" type="xsd:string" minOccurs="0" xdb:SQLName="SIZE_TYPE">
                        <xsd:annotation>
                             <xsd:documentation>container sise and type that the rate is applicable</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="Amount" type="xsd:decimal" minOccurs="0" xdb:SQLName="BASE_RATE_AMOUNT">
                        <xsd:annotation>
                             <xsd:documentation>charge amount</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="Currency" type="CurrencyCode_V1" minOccurs="0" xdb:SQLName="BASE_RATE_CURRENCY">
                        <xsd:annotation>
                             <xsd:documentation>charge currency code</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="OfferType" minOccurs="0" xdb:SQLName="OFFER_TYPE">
                        <xsd:annotation>
                             <xsd:documentation>offer type: either OOCL offered or customer requested</xsd:documentation>
                        </xsd:annotation>
                        <xsd:simpleType>
                             <xsd:restriction base="xsd:string">
                                  <xsd:length value="4"/>
                             </xsd:restriction>
                        </xsd:simpleType>
                   </xsd:element>
                   <xsd:element name="IsSOC" type="xsd:boolean" minOccurs="0" xdb:SQLName="IS_SOC">
                        <xsd:annotation>
                             <xsd:documentation>indicator for shipper owned container</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="EffectiveFrom" type="ABDateTime_V1" minOccurs="0" xdb:SQLName="EFFECTIVE_FROM" xdb:SQLType="TIMESTAMP">
                        <xsd:annotation>
                             <xsd:documentation>effectime start time of the rate</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="EffectiveTo" type="ABDateTime_V1" minOccurs="0" xdb:SQLName="EFFECTIVE_TO" xdb:SQLType="TIMESTAMP">
                        <xsd:annotation>
                             <xsd:documentation>effectime end time of the rate</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="TransitTime" type="xsd:string" minOccurs="0" xdb:SQLName="TRANSIT_TIME">
                        <xsd:annotation>
                             <xsd:documentation>transit time of shipment that the rate offered</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:simpleType name="SAP_ID_V1">
              <xsd:annotation>
                   <xsd:documentation xml:lang="en">
                   SAP ID is the unique identifier for a given Customer in reference to SAP Application.
                   </xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="10"/>
              </xsd:restriction>
         </xsd:simpleType>
         <xsd:complexType name="ABShippingParty_V1" xdb:SQLType="AB_SHIPPING_PARTY_T">
              <xsd:annotation>
                   <xsd:documentation>Customer's roles in a shipment, like shipper, consignee, etc</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="CustomerHolder" type="CustomerHolder_V1" xdb:SQLName="CUSTOMER_HOLDER"/>
                   <xsd:element name="ShippingRoleGroupID" type="ID_Integer_V1" minOccurs="0" xdb:SQLName="SHIPPING_ROLE_GROUP_ID"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="CustomerHolder_V1" xdb:SQLType="CUSTOMER_HOLDER_T">
              <xsd:annotation>
                   <xsd:documentation>A place holder where a new customer was created or modified in agreement builder</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="SAP_ID" type="SAP_ID_V1" minOccurs="0" xdb:SQLName="SAP_ID">
                        <xsd:annotation>
                             <xsd:documentation>Customer SapID if it is an existing customer</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="Name" type="CompanyName_V1" minOccurs="0" xdb:SQLName="COMPANY_NAME">
                        <xsd:annotation>
                             <xsd:documentation>New customer name that is created during agreement builder creation(customer does not exist in NewCPF)</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="ModifiedContacts" type="CustomerContact_V1" minOccurs="0" maxOccurs="unbounded" xdb:SQLName="MODIFIED_CONTACTS" xdb:SQLCollType="MODIFIED_CONTACT_V"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="ShippingPartyRoleGroup_V1" xdb:SQLType="SHIPPING_PARTY_ROLE_GROUP_T">
              <xsd:annotation>
                   <xsd:documentation>All customer's shipping role in an agreement</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="GroupID" type="ID_Integer_V1" minOccurs="0" xdb:SQLName="GROUP_ID"/>
                   <xsd:element name="IsShipper" type="xsd:boolean" xdb:SQLName="IS_SHIPPER"/>
                   <xsd:element name="IsConsignee" type="xsd:boolean" xdb:SQLName="IS_CONSIGNEE"/>
                   <xsd:element name="IsForwarder" type="xsd:boolean" xdb:SQLName="IS_FORWARDER"/>
                   <xsd:element name="IsControlParty" type="xsd:boolean" xdb:SQLName="IS_CONTROL_PARTY"/>
                   <xsd:element name="IsSignatureParty" type="xsd:boolean" xdb:SQLName="IS_SIGNATURE_PARTY"/>
                   <xsd:element name="IsNotifyParty" type="xsd:boolean" xdb:SQLName="IS_NOTIFY_PARTY"/>
                   <xsd:element name="IsAssociate" type="xsd:boolean" xdb:SQLName="IS_ASSOCIATE"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:simpleType name="AlphaCode_V1">
              <xsd:annotation>
                   <xsd:documentation>Code of a CommodityReportGroup. The Business Community refers to this 3 digit code as the AlphaCode
                   </xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="3"/>
              </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType name="CargoNatureCode_V1">
              <xsd:annotation>
                   <xsd:documentation>The classification code of cargo for special stowage arrangement</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="2"/>
                   <xsd:enumeration value="AW">
                        <xsd:annotation>
                             <xsd:documentation>Awkward</xsd:documentation>
                        </xsd:annotation>
                   </xsd:enumeration>
                   <xsd:enumeration value="DG">
                        <xsd:annotation>
                             <xsd:documentation>Dangerous</xsd:documentation>
                        </xsd:annotation>
                   </xsd:enumeration>
                   <xsd:enumeration value="GC">
                        <xsd:annotation>
                             <xsd:documentation>GeneralCargo</xsd:documentation>
                        </xsd:annotation>
                   </xsd:enumeration>
                   <xsd:enumeration value="RF">
                        <xsd:annotation>
                             <xsd:documentation>Reefer</xsd:documentation>
                        </xsd:annotation>
                   </xsd:enumeration>
              </xsd:restriction>
         </xsd:simpleType>
         <xsd:simpleType name="ID_Integer_V1">
              <xsd:annotation>
                   <xsd:documentation>Represents Identifier using Integer as the restriction.</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:int"/>
         </xsd:simpleType>
         <xsd:complexType name="CorridorVolume_V1" xdb:SQLType="CORRIDOR_VOLUME_T">
              <xsd:annotation>
                   <xsd:documentation>Corridor volumns associated with corridor base rate</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="ID" type="xsd:int" xdb:SQLName="IDNUM">
                        <xsd:annotation>
                             <xsd:documentation>A numeric identifier which identifies a CorridorVolume only in the context of a Quote/Agreement</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="SizeType" type="xsd:string" minOccurs="0" xdb:SQLName="SIZE_TYPE">
                        <xsd:annotation>
                             <xsd:documentation>container sise and type that the rate is applicable</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="Volume" type="ShipmentVolume_V1" minOccurs="0" xdb:SQLName="VOLUME">
                        <xsd:annotation>
                             <xsd:documentation>corridor rate volume specification</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="VolumePatterns" type="VolumePattern_V1" minOccurs="0" maxOccurs="unbounded" xdb:SQLName="VOLUME_PATTERNS" xdb:SQLCollType="VOLUME_PATTERN_V">
                        <xsd:annotation>
                             <xsd:documentation>detailed volume sepecification</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="Basis" type="xsd:string" minOccurs="0" xdb:SQLName="BASIS"/>
                   <xsd:element name="IsConditionOfRate" type="xsd:boolean" xdb:SQLName="IS_CONDITION_OF_RATE">
                        <xsd:annotation>
                             <xsd:documentation>indicate if the volume sepecification is a condition of the corridor rate</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="IsShared" type="xsd:boolean" xdb:SQLName="IS_SHARED">
                        <xsd:annotation>
                             <xsd:documentation>Indicates if the volume group is shared by more than one corridor rate. When true, sizetype should be null</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="IsForEntireAgreement" type="xsd:boolean" xdb:SQLName="IS_FOR_AGREEMENT"/>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="VolumePattern_V1" xdb:SQLType="VOLUME_PATTERN_T">
              <xsd:annotation>
                   <xsd:documentation>Agreement volume pattern</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="Volume" type="ShipmentVolume_V1" minOccurs="0" xdb:SQLName="VOLUME">
                        <xsd:annotation>
                             <xsd:documentation>volume amount</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="Period" type="xsd:string" minOccurs="0" xdb:SQLName="PERIOD">
                        <xsd:annotation>
                             <xsd:documentation>time period for the volume</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
              </xsd:sequence>
         </xsd:complexType>
         <xsd:complexType name="ShipmentVolume_V1" xdb:SQLType="SHIPMENT_VOLUME_T">
              <xsd:annotation>
                   <xsd:documentation>A measurement for shipment volume</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="Unit" type="xsd:string" minOccurs="0" xdb:SQLName="UNIT"/>
                   <xsd:element name="Value" type="xsd:decimal" minOccurs="0" xdb:SQLName="VALUE"/>
              </xsd:sequence>
         </xsd:complexType>
         <!-- END Simple/Complex Types copied from External XSD Files -->
    </xsd:schema>
    CorridorRate.xsd
    <?xml version="1.0" encoding="utf-8"?>
    <!-- edited with XMLSpy v2007 rel. 3 (http://www.altova.com) by Auroprem Kandaswami (OOCL (USA) INC) -->
    <xsd:schema xmlns="http://com.oocl.schema.tnm.agreementbuilder" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" xmlns:tnm="http://com.oocl.schema.tnm" xmlns:common="http://com.oocl.schema.common" xmlns:fwd="http://com.oocl.frm.common.date.dto/" xmlns:customer="http://com.oocl.schema.customer" xmlns:eqm="http://com.oocl.schema.eqm" targetNamespace="http://com.oocl.schema.tnm.agreementbuilder" elementFormDefault="qualified" attributeFormDefault="unqualified" xdb:storeVarrayAsTable="true">
         <xsd:include schemaLocation="AB_Common_V1_XMLDB.xsd"/>
         <xsd:element name="CorridorRate" type="CorridorRate_V1" nillable="true" xdb:SQLName="CORRIDOR_RATE"/>
         <!-- Below copied from common:DeliveryMode_V1.xsd -->
         <xsd:simpleType name="DeliveryMode_V1">
              <xsd:annotation>
                   <xsd:documentation>2 char string representing the delivery mode associated with the rate. YY for example is a Container Yard to Container Yard move, whereas DD is a door to door move.</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="2"/>
                   <xsd:minLength value="2"/>
                   <xsd:enumeration value="YY"/>
                   <xsd:enumeration value="YD"/>
                   <xsd:enumeration value="DY"/>
                   <xsd:enumeration value="DD"/>
              </xsd:restriction>
         </xsd:simpleType>
         <!-- Below copied from PaymentTerm_V1.xsd -->
         <xsd:simpleType name="PaymentTerm_V1">
              <xsd:annotation>
                   <xsd:documentation>Payment term, either prepaid or collect</xsd:documentation>
              </xsd:annotation>
              <xsd:restriction base="xsd:string">
                   <xsd:maxLength value="10"/>
                   <xsd:enumeration value="Prepaid"/>
                   <xsd:enumeration value="Collect"/>
              </xsd:restriction>
         </xsd:simpleType>
         <!-- Below copied from CorridorMetric_V1.xsd -->
         <xsd:complexType name="CorridorMetric_V1" xdb:SQLType="CORRIDOR_METRIC_T">
              <xsd:annotation>
                   <xsd:documentation>Corridor metrics associated with corridor base rate</xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="SizeType" type="xsd:string" minOccurs="0" xdb:SQLName="SIZE_TYPE">
                        <xsd:annotation>
                             <xsd:documentation>container sise and type that the rate is applicable</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="VolumeSRG" type="xsd:string" minOccurs="0" xdb:SQLName="VOLUME_SRG">
                        <xsd:annotation>
                             <xsd:documentation>guideline volume</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="AgreementSRG" type="xsd:string" minOccurs="0" xdb:SQLName="AGREEMENT_SRG">
                        <xsd:annotation>
                             <xsd:documentation>ageeement volume</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="ContributionNRPO" type="xsd:string" minOccurs="0" xdb:SQLName="CONTRIBUTION_NRPO">
                        <xsd:annotation>
                             <xsd:documentation>contribution matrix NRPO</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="ContributionRPO" type="xsd:string" minOccurs="0" xdb:SQLName="CONTRIBUTION_RPO">
                        <xsd:annotation>
                             <xsd:documentation>contribution matrix RPO</xsd:documentation>
                        </xsd:annotation>
                   </xsd:element>
                   <xsd:element name="AverageRate" type="xsd:string" minOccurs="0" xdb:SQLName="AVERAGE_RATE">

    Thanks so much for your response - Prefixing the call to the table within the package, with the schema owner does indeed solve the problem. Since this is a Production issue, i have implemented this fix in my customer's database.
    However, I would still like this issue permanently resolved. The next time we send out updated package code, this will happen again (unless we then fix it again). I'd still like info from anyone on what exactly must be done to allow the call within the package to work without specifically pre-fixing the table's schema owner. It shouldn't be needed... The DB link is connecting via the same schema on database B that owns the table in question.
    pre-fixing the schema owner is something we don't do in our sql statements, and this has worked fine for many of our cusomer's environments. We're only seeing this issue on one environment.

  • Locking Schema Owner account in oracle

    Hi
    One of the oracle security policy recommendations is to lock the owning schema in the database. To overcome this issue I suggested to the developer that I can create a new access account with permissions to select ,insert,delete and update data on owning schema. But the developer is insisting that instead of creating that new account, should transfer the objects of the schema owner account to a new account and unlock the schema owner account this way he does not have to make changes to the application on his side...this did not make sense to me ,can some one please shed some light on this?

    >
    sorry , I meant that when we lock the schema owner ,connecting to the database with that account is denied. What I suggested is to create an access account with SUID priviliges on owning schema data. But the developer insists that I create a new account transfer the objects/data from schema owner to this new account and then unlock the schema owner account. This way he will not have to make changes on the application side,I was not entirely sure how it will benefit him by doing so
    >
    You still haven't stated what the actual issue is you are trying to address.
    From the first post is seemed that your question was 'How can we implement the Oracle security recommendation to lock the application account without actually locking the application account'?
    And your proposed solution is to create another account with exactly the same privileges as the schema owner and use that account instead.
    That doesn't implement the recommendation. That is an attempt to circumvent the recommendation.
    My advice is that if you don't want to actually implement Oracle's recommendation then don't implement it.
    And if you do want to implement the recommendation then do so. But none of the options you are suggesting implement it they only circumvent it.
    >
    One of the oracle security policy recommendations is to lock the owning schema in the database
    >
    What is the citation for this statement? What reason was given for the recommendation?
    One primary reason for using application users (rather than schema users) is to exert positive control over the functionality and data that the application has access to.
    A schema owner has access to all objects owned by the schema. Applications typically don't need all of those privileges. A schema owner can create new objects and modify existing objects; applications seldom need to be able to do that.
    Within a stored procedure a schema owner still has access to all of the schemas objects but other users/applications only have access granted directly to them and do not have access to objects granted only thru roles.
    To properly implement the recommendation you need to create an application user and grant that user the roles and direct grants that are needed for the functionality and data that needs to be accessed. The result is two users: one has full access to the schema objects and the other has limited access. Application code should use the limited user credentials.
    What you call the users is up to you. If you want to switch roles and make your current user the limited user and create a new user for the objects and move them all to the new schema go ahead.
    But that is a lot of work and validation for you to have to do. The only change a developer should have to make to use a different user is to change the connection information. That should be very simple to do and if it is not it needs to be changed to make it simple.
    Based only on the information you have provided it sounds like the developer is just lazy and wants you to have to do all of the work. So the developer needs to make their case as to why they can't just change connection settings and then management can make a decision about which method should be used.
    Your work should be to create a new application account that specifically is NOT simply an account superuser but is only granted, either directly or via roles, the specific privileges that the application actually needs. My guess would be that no one actually knows or has documented what privileges are really needed so they just want them all.
    The best contribution you could make for security is to resist the super user approach and actuallly push for documentation of the privileges needed and then implement those.
    Management and auditors must ALWAYS be able to control and determine who is actually using their data.
    I would suggest that you create a new user account account

  • How to export some data from the tables of an owner with integrity?

    Hi to all,
    How to export some data from the tables of an owner with integrity?
    I want to bring some data from all tables in a single owner of the production database for development environment.
    My initial requirements are: seeking information on company code (emp), contract status (status) and / or effective date of contract settlement (dt_liq_efetiva) - a small amount of data to developers.
    These three fields are present in the main system table (the table of contracts). Then I thought about ...
    - create a temporary table from the query results table to contract;
    - and then use this temporary table as a reference to fetch the data in other tables of the owner while maintaining integrity. But how? I have not found the answer, because: what to do when not there is the possibility of a join between the contract and any other table?
    I am considering the possibility of consulting the names of tables, foreign keys and columns above, and create dynamic SQL. Conceptually, something like:
    select r.constraint_name "FK name",
    r.table_name "FK table",
    r.column_name "FK column",
    up.constraint_name "Referencing name",
    up.table_name "Referencing table",
    up.column_name "Referencing column"
    from all_cons_columns up
    join all_cons_columns r
    using (owner, position), (select r.owner,
    r.constraint_name fk,
    r.table_name table_fk,
    r.r_constraint_name r,
    up.table_name table_r
    from all_constraints up, all_constraints r
    where r.r_owner = up.owner
    and r.r_constraint_name = up.constraint_name
    and up.constraint_type in ('P', 'U')
    and r.constraint_type = 'R'
    and r.owner = 'OWNERNAME') aux
    where r.constraint_name = aux.fk
    and r.table_name = aux.table_fk
    and up.constraint_name = aux.r
    and up.table_name = aux.table_r;
    -- + Dynamic SQL
    If anyone has any suggestions and / or reuse code to me thank you very much!
    After resolving this standoff intend to mount the inserts in utl_file by a table and create another program to read and play in the development environment.
    Thinking...
    Let's Share!
    My thanks in advance,
    Philips

    Thanks, Peter.
    Well, I am working with release 9.2.0.8.0. But the planning is migrate to 10g this year. So my questions are:
    With Data Pump can export data just from tables owned for me (SCHEMAS = MYOWNER) parameterizing the volume of data (SAMPLE) and filters to table (QUERY), right? But parameterizing a contract table QUERY = "WHERE status NOT IN (2,6) ORDER BY contract ":
    1º- the Data Pump automatically searches for related data in other tables in the owner? ex. parcel table has X records related (fk) with Y contracts not in (2,6): X * SAMPLE records will be randomly exported?
    2º- for the tables without relation (fk) and which are within the owner (MYOWNER) the data is exported only based on the parameter SAMPLE?
    Once again, thank you,
    Philips
    Reading Oracle Docs...

  • Goto: How to export some data from the tables of an owner with integrity?

    Hi to all,
    Help please: How to export some data from the tables of an owner with integrity?
    My thanks in advance,
    Philips

    Thanks, Peter.
    Well, I am working with release 9.2.0.8.0. But the planning is migrate to 10g this year. So my questions are:
    With Data Pump can export data just from tables owned for me (SCHEMAS = MYOWNER) parameterizing the volume of data (SAMPLE) and filters to table (QUERY), right? But parameterizing a contract table QUERY = "WHERE status NOT IN (2,6) ORDER BY contract ":
    1º- the Data Pump automatically searches for related data in other tables in the owner? ex. parcel table has X records related (fk) with Y contracts not in (2,6): X * SAMPLE records will be randomly exported?
    2º- for the tables without relation (fk) and which are within the owner (MYOWNER) the data is exported only based on the parameter SAMPLE?
    Once again, thank you,
    Philips
    Reading Oracle Docs...

  • Copying tables between schema owners

    In Timesten, can you copy tables across schemas/owners?
    i.e. OWNER_A.TABLE_Y to OWNER_B.TABLE_Y
    Where TABLE_Y has the same definition? Basically, I'd like to be able to backup one datastore and restore it in another datastore that has the same table definitions, but may have a different owner name.
    Thanks,
    Larry

    I'm not completely clear on exactly what you are looking to do. On one hand you ask about copying tables between schemas. This is easily done:
    CREATE TABLE OWNER_B.TABLE_Y AS SELECT * FROM OWNER_A.TABLE_Y;
    This only works for TimesTen tables that are not part of a cache group; specifically the source table can be part of a cache group but the target table cannot. if the target table is part of a cache group then you need to:
    1. Create the cache group containing the target (cached) table.
    2. INSERT INTO OWNER_B.TABLE_Y SELECT * FROM OWNER_A.TABLE_Y;
    But then you mention backup and restore. Since TimesTen backup/retore (ttBackup/ttRestore) works at a physical level you cannot rename/copy tables as part of that. You might be able to use ttMigrate with the -rename oldOwner:newOwner option but there are some constraints around this (one being that PL/SQL cannot be enabled in the database).
    Chris

Maybe you are looking for

  • I updeted my i phone but itunes broken my i phoen

    i updeted my i phone but itunes broken my i phoen

  • Length of numeric string

    When generating an accountId - I append a numeric onto the end of a derived string. I need to determine the overall length of the accountId because I have a size limit. However, when I try to get the length of a numeric string (like "17") I get 0 - s

  • Deployment plan to update web.xml

    Hello, Is it possible to use a deployement plan to update the web.xml file of an war inside an ear ? I would like to map a servlet on a new URI using a new workmanager by configuration (I mean once my application is built) I suppose it is possible to

  • Oracle 9i install on Linux

    I just finished installing the Oracle 9i Software on my Linux 7.2 box. After installing the Database Software I chose not to create the seed Database. I wanted to create a custom Database on my own so I defered the task for later. I then installed th

  • HELP!! Problems using some apps??

    Can someone please help? Im having a problem using some Apps - mainly Natwest banking and My Fitness Pal both are saying i require internet to use (wifi or 3G) I do have BIS on my phone and can acces internet and other apps suck as Facebook, GoogleMa