Executing a SQL Inseert as a DB User instead of htmldb_public_user

Hi,
There are quite a few posts on this topic, but no direct answer.
In one of Scott's posts, he says:
'If you use HTML DB Account/LDAP/SSO/roll-your-own authentication and your named HTML DB session user is MIKE, HTML DB will execute your SQL or PL/SQL as the application's schema connected as HTMLDB_PUBLIC_USER and everything your code does inside the database will be as user HTMLDB_PUBLIC_USER .... '
In same post he says that if you use DB_authentication, the SQL is executed as the DB user.
We are putting the finishing touches on an application that needs to write to a DB which contains a trigger on it enforcing a rule that the insert user has to be a database user.
The problems/background to the issue we have are:
1. We want to use ldap - so we don't have to register everyone on that DB
2. Even if we didn't want to use LDAP, we can't get people to log onto the database anyway - as the application has a weird setup where the database username = application userame, but application password <> database password - and no user knows their database password (so they can't sneak around the back end).
3. We can't create a user htmldb_public_user on that database as it has a 10 char restriction on usernames
I guess It's the same question as:
How to execute a plsql with another db user but not HTMLDB_PUBLIC_USER?
but this was never expanded/answered.
What are my options?
A. Can I change htmldb_public_user to another username that is on the database?
or preferably
B. Can I somehow get the SQL to be run using the username that logged into htmldb?
...David.

Hi Scott,
1) If you cannot create database users > 10 chars, how did you install HTML DB with its default schemas FLOWS_010600, FLOWS_020000, or FLOWS_FILES? We can create these users directly on the database for htmldb, but the application that we have on that same database does not let us create usernames > 10 char - and it is this application (a 3rd party system we have no control over) that enforces the database trigger for the user to be registered on their system when we try and update some of their data.
ie - we have a 3rd party database structure that we are sitting html db on top of to do reports and some updates where that system is inefficient. We have to work around that 3rd party's security as we have no way of changing it or getting them to change it.
2) You cannot safely use an alternative user to HTMLDB_PUBLIC_USER. Okay. That's nice to know as we were about to try that option.
Scott: having seen hopefully a bit more detail in the reply to 1 above - can you see what the question is now? ie - if we authenticate in htmldb using ldap, can we run a insert or update sql somehow within the htmldb application using a different account to htmldb_public_user so that we can fit in with the security restraints of this 3rd party system?
As I have said, we cannot use database authentication as the setup on this 3rd party system is very strange - it has a separate application based password for users compared to the user's database password , and we cannot give the users the database password (so they can log into htmldb) as it constitutes a security risk.
I am toying with the idea of creating a staging table that contains triggers to update the real table owned by the 3rd party application's schema, but haven't managed to get it working yet.

Similar Messages

  • Execute all SQL code as individual Oracle user, not APEX_PUBLIC_USER

    Is it possible to get APEX to execute SQL code as the user's existing Oracle database user instead of APEX_PUBLIC_USER?
    Besides having all of the security already defined for each of the existing users at the database level, the existing application also handles generating audit trails with triggers that pull the username executing the SQL instead of accepting passed values. At the moment APEX_PUBLIC_USER is plastered everywhere as the user that generated the changes.

    rcy_evdriver wrote:
    Is it possible to get APEX to execute SQL code as the user's existing Oracle database user instead of APEX_PUBLIC_USER? No. See:
    {message:id=926724}
    {message:id=1224601}
    {message:id=1606515}
    Application Express and parsing of SQL
    Besides having all of the security already defined for each of the existing users at the database level, the existing application also handles generating audit trails with triggers that pull the username executing the SQL instead of accepting passed values. At the moment APEX_PUBLIC_USER is plastered everywhere as the user that generated the changes.Using DAD Credentials Verification will cause the database user to be returned by the <tt>USER</tt> pseudo-column. (However just because you can do this, it doesn't mean you should.)
    {message:id=9680421}
    Why are you asking this? +"At the moment APEX_PUBLIC_USER is plastered everywhere as the user that generated the changes"+ indicates that it might be a bit late to be making fundamental discoveries about APEX and database security?

  • SQL error 3113 occurred when executing EXEC SQL.

    Hi,
    We are facing one typical problem, One background is failing regularly with
    below dump. as we now got all notes giving information, if database  restarted
    taking backup, these type of failures occur, but our database is only down for backup once in a week, but it is failing with frequenly.
    in this two servers are located in different place, in this job tries to connect
    another server to get material statistics.
    It is giving some error message in sm21 with
    SQL error 3113 occurred when executing EXEC SQL.
    work procees in reconnect mode.
    all notes saying these types of dump occur when database restared, but this dump
    even though database is up.
    below is short dump, please can anyone help me from this problem.
    ABAP runtime errors    DBIF_DSQL2_SQL_ERROR
          Occurred on    08.01.2007 at 00:30:28
    >> Short dump has not been completely stored. It is too big.
    SQL error 3113 occurred when executing EXEC SQL.
    What happened?
    The error occurred in the current database connection "AZ1".
    What can you do?
    Note the actions and input that caused the error.
    Inform your SAP system administrator.
    You can print out this message by choosing "Print". Transaction ST22
    allows you to display and manage termination messages, including keeping
    them beyond their normal deletion date.
    Error analysis
    How to correct the error
    Database error text........: "ORA-03113: end-of-file on communication channel#"
    Triggering SQL statement...: "select mara.groes, mara.brgew, mara.ntgew,
    mara.gewei, mara.volum, mara.voleh, mara.mstae, mara.mstde, mara.prdha,
    marc.matnr, marc.werks, marc.mmsta, marc.mmstd from sapr3.mara, sapr3.m
    where sapr3.mara.mandt = sapr3.marc.mandt and sapr3.mara.matnr =
    Internal call code.........: "[DBDS/NEW DSQL]"
    Please check the entries in the system log (Transaction SM21).
    If the error occurred in a non-modified SAP program, you may be
    able to find a solution in the SAP note system.
    If you have access to the note system yourself, use the following
    search criteria:
    "DBIF_DSQL2_SQL_ERROR"
    "ZM2431216 " or "ZM2431216 "
    "EXTRACT_GENERAL_DATA"
    If you cannot solve the problem yourself, please send the
    following documents to SAP:
    1. A hard copy print describing the problem.
      To obtain this, select the "Print" function on the current screen.
    2. A suitable hardcopy prinout of the system log.
      To obtain this, call the system log with Transaction SM21
      and select the "Print" function to print out the relevant
      part.
    3. If the programs are your own programs or modified SAP programs,
      supply the source code.
      To do this, you can either use the "PRINT" command in th
      print the programs using the report RSINCL00.
    4. Details regarding the conditions under which the error o
      or which actions and input led to the error.
    System environment
    SAP Release.............. "46C"
    Application server....... "essceu3"
    Network address.......... "172.19.119.198"
    Operating system......... "AIX"
    Release.................. "5.3"
    Hardware type............ "00C7ADBD4C00"
    Database server.......... "ukblx176"
    Database type............ "ORACLE"
    Database name............ "EU3"
    Database owner........... "SAPR3"
    Character set............ "es_ES.ISO8859-1"
    SAP kernel............... "46D"
    Created on............... "Jul 9 2006 20:26:33"
    Created in............... "AIX 1 5 00447C4A4C00"
    Database version......... "OCI_920__OCI_7_API "
    Patch level.............. "2257"
    Patch text............... " "
    Supported environment....
    Database................. "ORACLE 8.0.5.., ORACLE 8.0.6.., ORACLE
    8.1.6.., ORACLE 8.1.7.., ORACLE 9.2.0.., ORACLE 10.2.0.."
    SAP database version..... "46D"
    Operating system......... "AIX 1 4, AIX 2 4, AIX 3 4, AIX 1 5, AIX 2 5, AIX 3
    5, , System build information:,                                      , LCHN :
    841480"
    User, transaction...
    Client.............. 600
    User................ "MPZMMES"
    Language key........ "S"
    Transaction......... " "
    Program............. "ZM2431216 "
    Screen.............. "SAPMSSY0 1000"
    Screen line......... 6
    Information on where termination occurred
    The termination occurred in the ABAP/4 program "ZM2431216 " in
    "EXTRACT_GENERAL_DATA".
    The main program was "ZM2431216 ".
    The termination occurred in line 980
    of the source code of program "ZM2431216 " (when callin
    The program "ZM2431216 " was started as a background jo
    Source code extract
    009500              mara.ntgew,
    009510              mara.gewei,
    009520              mara.volum,
    009530              mara.voleh,
    009540              mara.mstae,
    009550              mara.mstde,
    009560              mara.prdha,
    009570              marc.matnr,
    009580              marc.werks,
    009590              marc.mmsta,
    009600              marc.mmstd
    009610        into :w_ops-groes,
    009620              :w_ops-brgew,
    009630              :w_ops-ntgew,
    009640              :w_ops-gewei,
    009650              :w_ops-volum,
    009660              :w_ops-voleh,
    009670              :w_ops-mstae,
    009680              :w_ops-mstde,
    009690              :w_ops-prdha,
    009700              :w_ops-matnr,
    009710              :w_ops-werks,
    009720              :w_ops-mmsta,
    009730              :w_ops-mmstd
    009740        from sapr3.mara, sapr3.marc
    009750        where sapr3.mara.mandt = sapr3.marc.mandt
    009760          and sapr3.mara.matnr = sapr3.marc.matnr
    009770          and sapr3.mara.mandt = :p_mandt
    009780          and sapr3.mara.matnr = :w_ebs-matnr
    009790          and sapr3.marc.werks = :p_owerks
        >    ENDEXEC.
    009810  endform.                    " extract_general_data
    009820  *&
    009830  *&      Form  append_i_ops
    009840  *&
    009850  *      Appends W_OPS to I_OPS
    009860  *
    009870  form append_i_ops.
    009880    append w_ops to i_ops.
    009890  endform.                    " append_i_ops
    009900  *&
    009910  *&      Form  extract_material_description
    009920  *&
    009930  *      Extracts a Material Description from the remote database an
    009940  *      modifies the current record in I_OPS.
    009950  *
    009960  *        >P_SPRAS  Language Key
    009970  *
    009980  form extract_material_description using    p_spras.
    009990    EXEC sql performing set_langauge.
    Contents of system fields
    SY field contents..................... SY field contents............
    SY-SUBRC 0                            SY-INDEX 0
    SY-TABIX 1                            SY-DBCNT 1
    SY-FDPOS 18                            SY-LSIND 0
    SY-PAGNO 0                            SY-LINNO 1
    SY-COLNO 1
    Chosen variables
    Name.......................... Contents.1........2........3....+..
    W_EBS-PRAT4
                                  2
                                  0
    W_OPS-GROES
                                  22222222222222222222222222222222
                                  00000000000000000000000000000000
    W_OPS-BRGEW                    #######
                                  0000000
                                  000000C
    W_OPS-NTGEW                    #######
                                  0000000
                                  000000C
    regards,
    krishnaiah.

    Hi,
    This is usually a SERVER SIDE DATABASE PROBLEM or SQLNET LISTENER (server side) PROBLEM.  The client side should initially be ignored and instead the server should be investigated. In rare cases, this can be caused by client
    side memory or other resource problem, or a DLL version mismatch, but this is
    unlikely.
    Enlist the assistance of your DBA.  Then reproduce the ORA-3113 error on your
    client application.  Ask your DBA to look at the database side Alert.log and
    trace files and look for ANY activity.  Any activity that coincides with your
    ORA-3113 will be a clue.
    REgards
    Vinod

  • Reports successfully execute but generate a login failed for user 'sa' err

    I am running Crystal Reports Server XI R2. Classic ASP is used to generate embedded reports within our application. The crystal reports use ODBC to connect to a SQL Server 2005 database. The reports successfully generate in our Classic ASP application. However in SQL Server 2005,  the following error messages are being generated each time a crystal report is ran:
    - Login failed for user 'sa'.
    - Error: 18456, Severity: 14, State: 8.
    We know that we are passing the correct username/password to the crystal reports, becuase they execute successfully.
    It appears that when the report is called, Crystal Reports appears to conect to SQL Server using a username/password that we didn't provide it at execution time, this fails and the SQL Server 'login failed for user' is generated. Then it runs the report using the username/password we provide and it successfully generates a report.
    I have ran Profiler against the SQL Server Database and the 'Login failed for user 'sa' ' errors have a ApplicationName of either 'Seagate Crystal Reports' or 'Crystal Reports'. Therefore I know it is Crystal Reports generating these errors in SQL Server.
    Does anyone have any ideas on how to stop these SQL Server 'Login failed for user 'sa' ' errors being generated?

    What happens if you use Profiler when running the report using Crystal Report Designer?
    If the report is ran through Crystal Report Designer, NO 'Login failed for user' error messages appear in profiler. Everything looks ok when ran in Designer.
    Also, need to know what patch level you are on?
    We are running Crystal Reports Server XI Release 2, Version: 11.5.8.8265
    No additional patchs have been applied since Crystal Reports Server was installed.
    We may try the SA account if one of the connections fail to log on with the credentials you provided. Verify the user you logged on with has rights to all tables.
    The reports were running through our application using the SA account. The SA account has permissions to these tables. The reports do generate results and appear perfectly fine in the application.  The issue is that when our application requests the report from Crystal Reports Server. Crystal Reports Server delivers the correct report to our application. However during the process to generate the report, 'login failed for user 'sa' ' errors are being generated in SQL Server 2005.
    Also, I have tried creating a completely new SQL user called 'crystaluser'. I ran the report using Crystal Report Designer and used the crystaluser logon and saved the report. Then I ran the same report through our application. SQL Profiler will then display 'login failed for user 'crystaluser''. 
    Its seems as though Crystal Reports Server is first executing the report using the default SQL user saved with the report, but is either sending a blank password or no password at all. This generates the 'login failed for user' in SQL Server 2005. But it then uses the SQL username/password my application gives it and successfully generates the report. Of course this is only speculation.

  • How to operate multiple querys using DB Adapter and 'Execute Custom SQL'

    I have a requirment that I need to create database adapter in your BPEL process with 'Execute Custom SQL' to operate multiple query in DB in one atomic
    here are the details:
    inbound request:
    <ns1:Query_bpelProcessRequest>
    <ns1:input>
    <ns1:ItemDetail>
    <ns1:ItemID>1123DDDS</ns1:ItemID>
    </ns1:ItemDetail>
    <ns1:ItemDetail>
    <ns1:ItemID>1126EWWA</ns1:ItemID>
    </ns1:ItemDetail>
    <ns1:ItemDetail>
    <ns1:ItemID>11208FSAA</ns1:ItemID>
    </ns1:ItemDetail>
    </ns1:input>
    </ns1:Query_bpelProcessRequest>
    I use for-each fuction in XSLT to mapping the all ItemID value:
    <xsl:template match="/">
    <xsl:for-each select="/tns:Query_bpelProcessRequest/tns:input/tns:ItemDetail">
    <ns1:QueryFromDB_Input>
    <ns1:ItemID>
    <xsl:value-of select="tns:ItemID"/>
    </ns1:ItemID>
    </ns1:QueryFromDB_Input>
    </xsl:for-each>
    </xsl:template>
    and in DB Adapter I use the 'Execute Custom SQL' to query the CONTENT value according the ItemID value:
    select distinct CONTENT from agile.item where ITEM_NUMBER=’<ItemID>’
    However, in the result, It only query the first item value for <ns1:ItemID>1123DDDS</ns1:ItemID>
    <<QueryFromDB_InputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="QueryFromDB_Input_msg">
    <QueryFromDB_Input xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/db/QueryFromDB" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/QueryFromDB">
    <ns1:ItemID>1123DDDS</ns1:ItemID>
    </QueryFromDB_Input>
    </part></QueryFromDB_InputVariable>
    <QueryFromDB_OutputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="QueryFromDB_OutputCollection">
    <QueryFromDB_OutputCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/QueryFromDB">
    <QueryFromDB_Output>
    <ITEM_NUMBER>1123DDDS</ITEM_NUMBER>
    <CONTENT >SJIFESSFFJ</CONTENT >
    </QueryFromDB_Output>
    </QueryFromDB_OutputCollection>
    </part></QueryFromDB_OutputVariable>
    the other two querys are not operated.
    what can I do to operate multiple querys??
    Thanks

    Hi Rod,
    I are using while loop and assign array inputvalue to the inputvarable of DBadapter now, but actually it doesn't work.
    Throw expection
    <selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"><part name="summary"><summary>XPath query string returns multiple nodes.
    According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query /client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID["ItemIndex"] should not return multipe nodes.
    Please check the BPEL source at line number "89" and verify the part and xpath query /client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID["ItemIndex"].
    Possible reasons behind this problems are: some xml elements has maxOccurs > 1 or the xml data is invalid according to XML Schema.
    To verify whether XML data received by a process is valid, user can turn on validateXML switch at the domain administration page.
    </summary>
    </part></selectionFailure>
    my inbound XSD:
    <element name="ItemsQuery_bpelProcessRequest">
    <complexType>
    <sequence>
    <element name="input" type="tns:inputType"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="inputType">
    <sequence>
    <element name="inputDetail" minOccurs="0" maxOccurs="unbounded">
    <complexType>
    <sequence>
    <element name="ProductID" type="string" minOccurs="0"/>
    </sequence>
    </complexType>
    </element>
    </sequence>
    </complexType>
    <element name="ItemsQuery_bpelProcessResponse">
    <complexType>
    <sequence>
    <element name="result" type="tns:outputType"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="outputType">
    <sequence>
    <element name="ItemOutput" minOccurs="0" maxOccurs="unbounded">
    <complexType>
    <sequence>
    <element name="item_id" type="string" minOccurs="0"/>
    </sequence>
    </complexType>
    </element>
    </sequence>
    </complexType>
    DB Adapter XSD:
    <xs:schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/QueryItem" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/QueryItem" elementFormDefault="qualified" attributeFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="QueryItem_Input" type="QueryItem_Input"/>
    <xs:complexType name="QueryFrom_Input">
    <xs:sequence>
    <xs:element name="ProductID" type="xs:string" nillable="true"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="QueryItem_OutputCollection" type="QueryItem_OutputCollection"/>
    <xs:complexType name="QueryItem_OutputCollection">
    <xs:sequence>
    <xs:element name="QueryItem_Output" type="QueryItem_Output" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="QueryItem_Output">
    <xs:sequence>
    <xs:element name="item_id" type="xs:string" nillable="true"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    the bpel assign:
    <assign name="Initial_Index">
    <copy>
    <from expression="0"/>
    <to variable="ItemIndex"/>
    </copy>
    </assign>
    <while name="While_1"
    condition="bpws:getVariableData('ItemIndex')&lt;ora:countNodes('inputVariable','payload','/client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID)">
    <sequence name="Sequence_1">
    <assign name="Assign_QueryInput">
    <copy>
    <from variable="inputVariable" part="payload"
    query='/client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID{bpws:getVariableData('ItemIndex')}'/>
    <to variable="QueryItem_InputVariable"
    part="QueryItem_nput_msg"
    query="/ns2:QueryItem_Input/ns2:ProductID"/>
    </copy>
    </assign>
    <invoke name="Invoke_QueryDB" partnerLink="QueryItem"
    portType="ns1:QueryItem_ptt"
    operation="QueryItem_PSFT"
    inputVariable="QueryItem_InputVariable"
    outputVariable="QueryItem_OutputVariable"/>
    <assign name="Assign_Output">
    <copy>
    <from variable="QueryItem_OutputVariable"
    part="QueryItem_OutputCollection"
    query="/ns2:QueryItem_OutputCollection/ns2:QueryItem_Output/ns2:item_id"/>
    <to variable="outputVariable" part="payload"
    query='/client:ItemsQuery_bpelProcessResponse/client:result/client:ItemOutput/client:item_id{bpws:getVariableData('ItemIndex')}'/>
    </copy>
    <copy>
    <from expression="bpws:getVariableData('ItemIndex')+1"/>
    <to variable="ItemIndex"/>
    </copy>
    </assign>
    </sequence>
    </while>
    I use {} instead of  []  for array,  because [] seams not reveal in this message board
    seems I can't assign array values to the DB inputvalue, Are there any solutions for this ?
    I still haven't found any way for operating multiple querys using DB Adapter.
    Thanks
    Edited by: user1065212 on 07-Jan-2010 19:39
    Edited by: user1065212 on 07-Jan-2010 19:41
    Edited by: user1065212 on 07-Jan-2010 19:44
    Edited by: user1065212 on 07-Jan-2010 19:45

  • Package fails, execute in sql*plus works

    SQL> execute toa.toa_security.change_password('testuser','testpassword');
    ALTER USER testuser IDENTIFIED BY testpassword
    BEGIN toa.toa_security.change_password('testuser','testpassword'); END;
    ERROR at line 1:
    ORA-01031: insufficient privileges
    ORA-06512: at "TOA.TOA_SECURITY", line 77
    ORA-06512: at line 1
    Here is the code
    PROCEDURE CHANGE_PASSWORD (userid VARCHAR2, passwd VARCHAR2) IS
      sqlstr VARCHAR2(500);
    BEGIN
      sqlstr :=
        'ALTER USER '||userid||' IDENTIFIED BY '||passwd;
      EXECUTE IMMEDIATE sqlstr;
    END CHANGE_PASSWORD;Line 77: EXECUTE IMMEDIATE sqlstr;
    No matter what user I run this as it fails (even the owner who has DBA priv). I have other procedures and functions in this package and they all run fine for the owner and a "simple" user. So obvioulsy it is not a privilege missing for the user on the package even though I did "grant execute on toa_security to <user>;".
    I'm stumpped and baffled. And, I'm probably blind as to what is wrong.
    Any ideas?

    What William Robertson said is correct. Here's what happened on my system, I had to grant ALTER USER to myself directly:
    SQL> show user
    USER is "SYSTEM"
    SQL> CREATE OR REPLACE
      2  PROCEDURE CHANGE_PASSWORD (userid VARCHAR2, passwd VARCHAR2) IS
      3
      4  BEGIN
      5
      6    EXECUTE IMMEDIATE 'ALTER USER '||userid||' IDENTIFIED BY '||passwd;
      7
      8  END CHANGE_PASSWORD;
      9  /
    Procedure created.
    SQL> exec change_password('HR','blah');
    BEGIN change_password('HR','blah'); END;
    ERROR at line 1:
    ORA-01031: insufficient privileges
    ORA-06512: at "SYSTEM.CHANGE_PASSWORD", line 5
    ORA-06512: at line 1
    SQL> grant alter user to system;
    Grant succeeded.
    SQL> exec change_password('HR','blah');
    PL/SQL procedure successfully completed.
    SQL> conn hr/blah
    Connected.
    SQL>

  • Login to SQL Developer as the SYS user for Getting Started tutorial

    I went to try and do the following tutorial to learn about SQL Developer 3.0, but I cannot get started because I'm unable to perform Prerequisite #3.
    How do I "Login to SQL Developer as the SYS user"?
    Dave
    Getting Started with Oracle SQL Developer 3.0
    Prerequisites
    Before starting this tutorial, you should:
    1 .
    Install Oracle SQL Developer 3.0 from OTN. Follow the readme instructions here.
    2 .
    Install Oracle Database 11g with the Sample schema.
    3.
    Unlock the HR user. Login to SQL Developer as the SYS user and execute the following command:
    alter user hr identified by hr account unlock;
    Note: This tutorial is developed using Oracle SQL Developer 3.0.
    4 .
    Download and unzip the files.zip to a local folder on your file system. In this tutorial, we use the C:\sqldev3.0 folder.

    I installed XE. It asked me to set up a username and password during the install.
    How do I login as the SYS user, though?
    There is a Connection Name, Username, and Password field when I try to set up a connection in SQL Developer, and I used the username and password I made during the install. I clicked the Test button to test the connection.
    I see "Status: Failure -Test failed: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER".
    How do I tell SQL Developer "as SYSDBA or SYSOPER"?
    Sorry, this is probably easy, and I'm just clueless about it.

  • Security context issue when executing a SQL command in SQLCMD

    Simplified core issue below:
    I have myscript.sql that has:
    SELECT name FROM Sys.Databases
    GO
    USE mydatabase
    GO
    EXEC mystoredprocedure 'myparameter'
    GO
    When I open cmd.exe and use:
    SQLCMD -S localhost\myinstance -i script.sql
    It executes fine.
    When I open cmd.exe in C# using the Process class and execute the same command I get the following error:
    name
    master
    tempdb
    model
    msdb
    mydatabase
    (5 rows affected)
    Msg 916, Level 14, State 1, Server localhost\myinstance, Line 1
    The server principal "NT AUTHORITY\SYSTEM" is not able to access the database "mydatabase" under the current security context.
    Msg 2812, Level 16, State 62, Server localhost\myinstance, Line 1
    Could not find stored procedure 'mystoredprocedure'.
    And now the detailed explaination:
    I created an MSI which installs my custom application.
    During the bootstrap process, SQL Server 2012 Express is installed using the following parameters:
    /INSTANCEID="SQLEXPRESS"
    /ACTION="Install"
    /FEATURES=SQLEngine,Replication
    /HELP="False"
    /INDICATEPROGRESS="False"
    /Q="True"
    /QS="False"
    /ROLE="AllFeatures_WithDefaults"
    /ENU="True"
    /ERRORREPORTING="False"
    /SQMREPORTING=0
    /INSTANCENAME="SQLEXPRESS"
    /AGTSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"
    /AGTSVCSTARTUPTYPE="Disabled"
    /ISSVCSTARTUPTYPE="Automatic"
    /ISSVCACCOUNT="NT AUTHORITY\NetworkService"
    /ASSVCSTARTUPTYPE="Automatic"
    /ASCOLLATION="Latin1_General_CI_AS"
    /ASDATADIR="Data"
    /ASBACKUPDIR="Backup"
    /ASTEMPDIR="Temp"
    /ASCONFIGDIR="Config"
    /ASPROVIDERMSOLAP="1"
    /SQLSVCSTARTUPTYPE="Automatic"
    /FILESTREAMLEVEL="0"
    /ENABLERANU="True"
    /SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"
    /SQLSVCACCOUNT="NT Authority\Network Service"
    /SECURITYMODE="SQL"
    /ADDCURRENTUSERASSQLADMIN="True"
    /RSSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"
    /RSSVCSTARTUPTYPE="Automatic"
    /RSINSTALLMODE="FilesOnlyMode"
    /HIDECONSOLE
    /IACCEPTSQLSERVERLICENSETERMS
    /SAPWD="***************"
    The MSI then executes an Installer class DLL written in C# which restores a database to the SqlExpress instance.
    When the restore is completed, the Installer class then uses the Process class to launch CMD.exe and execute the SQL script using SQLCMD.
    Process vProcess = new Process();
    ProcessStartInfo vStartInfo = new ProcessStartInfo("cmd.exe");
    vStartInfo.Arguments = "/c set path=%path%;" + Context.Parameters["TargetDir"] + "\\; && sqlcmd -S LocalHost\\myinstance -i myscript.sql";
    vProcess.StartInfo = vStartInfo;
    vProcess.Start();
    vProcess.WaitForExit(30000);
    This is where I get the error mentioned above.
    However if I execute the same command manually by opening CMD.exe from the RUN command, it executes perfectly.
    I can not use -U or -P to supply a user / password, I MUST use integrated security.
    Additional info:
    Previously SQL Server 2008 Express has been in use for the bootstrapper, and this issue did not occur.
    The database the MSI restores is also built from SQL Server 2008. (Will be built from 2012 in the future.)
    Installation is performed on an account with administrative rights.
    Running the installer AS Administrator does not fix the issue.
    Any help would be greatly appreciated, as well please let me know if additional info is required.
    Thank you

    I'm having a similar issue where I'm using a batch file to execute commands to a group of servers. I can use the batch commands when updating MyDatabase but get the security context error when I try to update MyDatabase with a join to TheirDatabase except
    on servers where I am sysadmin.   Like I said, I can update MyDatabase as long as I don't join to TheirDatabase.
    Update A
    Set A.CCMCoderStaffSID = IsNull(B.StaffSID, -1)
    From MyDatabase.[R_Encounter].[VejdPfcsLinkageDataF19610x5] A
    Left Join ThierDatabase.Staff.Staff B on
    A.Sta3n = B.Sta3n and A.[CCMCoderF200IEN]= B.StaffIEN
    Error:
    Msg 916, Level 14, State 1, Server R04PHIDWH58, Line 1
    The server principal "MyDomain\ME" is not able to access the database "TheirDatabase" under the current security context.
    Line from batch:
    sqlcmd -S Server54 -d MyDatabase -i D:\ETLDevelopment\R04\Me\querytools\%RAWTablesScript%  -o D:\ETLDevelopment\R04\Me\UpdateSIDV1.txt

  • XL Reporter Installation - Error executing IXMetaProcs.sql

    Hi All,
    During installation getting error-
    Error Preparing Metadata Repository:
    Executing SQL script 'IXMetaProcs.sql' (Start:....)
    ExitCode -1073741819
    !!! ERROR Error executing IXMetaProcs.sql ExitCode -1073741819
    I have done the following checks.
    1.     XL Reporter has bee removed from Administrator->Add-On Administrator.
    2.     Add-Remove List Does not show XL Reporter.
    3.     Removed manually Database IXMetaSBOOEM from SQL Server.
    4.     %temp%  - > SM_OBS_DLL folder not found.
    5.     ILytix folder not found in HKEY_CURRENT_USER -> Software
    ILytix folder not found in HKEY_LOCAL_MACHINE-> Software
    6.     There is no other add-on installed
    7.     AddOnsInstall.sbo deleted.
          AddOnsLocalRegistration.sbo not found.
    8.  C:\Prog Files\SAP\SAP Business One\Add-Ons folder not found.
    But still I can't install XL Reporter.

    hi,
    first you have to check that you have install "dot. Net Framework 2.0" which is compulsory needed for installing XL reporter, also you have to install MS Office in your system.
    uninstall the XL reporter and install using the following steps
    installation steps of XL-reporter add-on,
    1. goto add-on administration => Register Add-on(click).
    give the XL reporter address. select default group as Manual.
    update.
    2. goto addon manager => pending Add-on tab => select the addon row and install.
    in installation give the user id and pwd of SQL server.
    3.goto addon manager =>installed addons tab, start the XL reporter, once it get connected as status.
    4. go to tools menu in SAP B1, in that you will find XL reporter, click that XL reporter will open.(to view XL reporter)
    follow the above steps you will get the XL repoter add-on running in SAP B1.
    regards
    sandip

  • Submit button executes a sql query

    In my servlet I'd like to create a submit button, and when it is clicked I want to execute an sql query.
    For example;
    If I write a name; I want to add that name to my table in my database.
    Could you give an example please?
    Thank you

    PreparedStatement ps = con.prepareStatement("insert into foo (name, birthdate) values (?, ?)"); // double check my sql insert syntax. I'm not sure if it's right.
    String theName = ...; // get name from what user enters
    Date theBirthDate =...; // likewise birthdate
    ps.setString(1, theName);
    ps.setDate(2, theBirthDate);
    ps.executeUpdate(); Look at the APIs or google for java preparedstatement tutorial or something for more info.

  • How to execute the *.sql when using occi  and vc

    help me!
    i must to initialize the remote database using the file of sql,
    for example:
    the file is ss.sql;
    and it is
    "DECLARE
    row integer := 0;
    user varchar2(256);
    BEGIN
    user := '&1';
    dbms_java.grant_policy_permission('PUBLIC', 'SYS',
    'java.lang.RuntimePermission', 'loadLibrary.*', row);
    dbms_java.grant_permission(user, 'SYS:java.lang.RuntimePermission',
    'loadLibrary.orawcom10', null);
    dbms_java.disable_permission(row);
    dbms_java.delete_permission(row);
    EXCEPTION
    WHEN OTHERS THEN
    IF row > 0 THEN
    dbms_java.disable_permission(row);
    dbms_java.delete_permission(row);
    END IF;
    RAISE;
    END;"
    i use the occi statement
    Environment * env;
    Connection * conn;
    Statement * stmt;
    env=Environment::createEnvironment(Environment::DefaultEnvironment);
    conn=env->createConnect(user_name,pwd,db_name);
    string sqlstmt=''BEGIN ss.sql;END";
    stmt=conn->createStatement(sqlstmt);
    it is wrong
    how do i change the sql statement???

    Hi,
    Instead of having the PL/SQL code as an anonymous block, you can create
    a procedure and then execute it through OCCI.
    For example:
    create or replace procedure my_proc
    is
    row integer := 0;
    user varchar2(256);
    begin
    --code here...
    end;
    I assume this code will be in ss.sql. Compile this procedure in
    your schema and then form the sqlstmt in OCCI this way:
    Statement *stmt = con->createStatement("BEGIN my_proc; END;") ;
    Rgds.
    Amogh

  • Grant EXECUTE on Portal30 privileges to a different user Hangs.

    Hello
    I would like to grant EXECUTE privileges on PORTAL30 objects to another user. When I try to do it from SQL*PLus, it waits and then errors out with a lock out message.
    Thanks

    Thanks. very helpful.
    but I login as sysdba, got this error:
    SQL> grant execute on sys.DBMS_LOCK to SMITH
    2 ;
    grant execute on sys.DBMS_LOCK to SMITH
    ERROR at line 1:
    ORA-01917: user or role 'SMITH' does not exist
    user SMITH exists, Why is that?
    S.

  • Executing multiple SQL statements fails using ODBC

    Executing multiple SQL statements will fail with error 'ORA-00911 invalid character' when connecting to an Oracle database using ODBC driver version 8.01.07.00.
    When I use either my application or the Oracle ODBC Test client utility connecting using ODBC driver version 8.01.07.00 I can only get a single CALL statement (as shown below) to execute:
    CALL BHInsert (TO_DATE('2003.07.23 10:04:28','YYYY.MM.DD HH24:MI:SS'),'BATCH_ID','1:CLS_FRENCHVANILLA-1','
    ','Event File
    Name','\\KILLIANS\BATCHCTL\SampleDemo1\JOURNALS\1.evt','','AREA1','','','','','','1','','','','','',' ','');
    When I try to execute the following string with multiple CALL statements (as shown below) it fails with the following error being returned - ORA-00911: invalid character
    CALL BHInsert (TO_DATE('2003.07.23 10:04:28','YYYY.MM.DD HH24:MI:SS'),'BATCH_ID','1:CLS_FRENCHVANILLA-1','
    ','Event File
    Name','\\KILLIANS\BATCHCTL\SampleDemo1\JOURNALS\1.evt','','AREA1','','','','','','1','','','','','',' ','');
    CALL BHInsert (TO_DATE('2003.07.23 10:04:28','YYYY.MM.DD
    HH24:MI:SS'),'BATCH_ID','1:CLS_FRENCHVANILLA-1','Version','Recipe Header','1.0','','AREA1',' ','
    ','','','','1','','','','','',' ','');
    CALL BHInsert (TO_DATE('2003.07.23 10:04:28','YYYY.MM.DD
    HH24:MI:SS'),'BATCH_ID','1:CLS_FRENCHVANILLA-1','Version Date','Recipe Header','5/18/2001 1:28:32
    PM','','AREA1',' ',' ','','','','1','','','','','',' ','');
    CALL BHInsert (TO_DATE('2003.07.23
    10:04:28','YYYY.MM.DD HH24:MI:SS'),'BATCH_ID','1:CLS_FRENCHVANILLA-1','Author','Recipe Header','Mark
    Shepard','','AREA1',' ',' ','','','','1','','','','','',' ','');
    I've tried adding a line feed in addition to the space at the end of each call but that doesn't seem to help. Also have tried unsuccessfully to change the seperator used between each call using various valid continuation characters.
    Executing multiple CALL statements from within Oracle's SQL Worksheet connecting as the same user and password, as my application executes successfully. However when I try this from within the Oracle ODBC test client, it fails with the same ORA-00911 error that I'm seeing in my application.
    I'm currently trying the more recent ODBC drivers, however any ideas or suggestions would be greatly appreciated.

    Can you take the begin ... end block and run it using SQL*Plus?
    I can't think of any documentation that would specifically answer this question. I'm sure if you read & absorbed the ODBC Programmers Reference (2000+ pages) you'd be able to find out, but I don't know of a quick way to find out.
    You can enable SQL*Net tracing. There are a fair number of options for enabling this tracing-- http://tahiti.oracle.com has all the Oracle manuals online, which should give you enough info to configure exactly what you want.
    I would suggest, however, that you look into more performant/ scalable alternatives rather than going too far down this path. A block with lots of SQL statements with literals isn't going to make your database happy even if you get it to work.
    Justin

  • SSIS execute single SQL Task for running multiple SQL statements on TeraData DB connection

    Hi,
    I need to run multiple statements in TeraData connection ("Go" command between the statements is not recognized). how can I execute 1 SQL task referring to those multi statements? I'm using file connection as well. all the statements located in a single
    file.
    I'm working with SSIS 2008, TERADATA 12.0.
     Thanks

    sure.
    create winbatch file (*.bat).
    in batch file set that command:
    bteq < scriptfilePath.txt (or .bteq)> LogsFolderPathOutputfile.out
    scriptfile should contain:
    .logon
    Server/user, pswd
    your script.
    if you want to set error handeling points, set the followings between yor command statements:
    .IF ERRORCODE <> 0 THEN .GOTO SqlError;
    at the end of script, set:
    -- Log successful completion
    .LOGOFF;.QUIT 0;
    .LABEL SqlError.QUIT ERRORLEVEL;
    you can view logs at the outputfile you stated above.
    enjoy.

  • How to get the time for executing an SQL statement?

    hi all...
    How can I get the total execution time for a given SQL statement to a ViewObject which is created dynamically for this SQL so that the end user knows it before hand and try to stop it or go further..?
    Please post any ideas if you have got..!!!
    thanx in advance..
    grüss
    K°vi

    This is not really a question for the JDeveloper forum, but rather for the DB forum.
    Since Oracle9i there is a way to estimate how long a query will take, before executing it.
    Check it out in the Oracle DB documentation or ask on the DB forum.
    There is no built-in functionality for this in JDeveloper, but you should be able to call out to the DB from your Java code to get the estimate.

Maybe you are looking for