Emulate Oracle DB server to provide external callback - oracle

I am trying to think of a solution to provide my own callback to events which can only be pushed to an Oracle Database server (configuration parameters are ip, port, user, pass) by an external server.
I have been told that, if i did have an Oracle DB server, i could provide my callback using a script like this :
open SQL connection.
exec my_own_callback("parameter1");
close conn;
Is there any available tool to emulate an Oracle Database server just enough so that the function my_own_callback, provided in a shared library, is called whenever an event is pushed by the external platform ?
I have searched the web for such alternatives, but could not find any (yet ?).

Related

vb6 ODBC Connection or Custom API?

I have a vb6 application that uses a Database MS Access in read-only method.
I want to change this database with another, centralized and server side like SQL Server or MySQL.
Actually, into vb6 I use DAO for the connection (I know is an older method and there are better like ADO)
I don't know if is better to create my own API and connect to the data by vb6 or buy a SQL SERVER Cloud (Ex: azure) and connect them by ODBC Connection.
I'm afraid that this connection might be too slow...
What do you advise me to do?
The DB is 5MB of dimension with 500/600 connection every day

Export Database connection to Oracle Developer

I have a database Connection established in odbcad and Microsoft Access (aswell as working in Excel) via ODBC and want to also get it working in Oracle SQL developer.
It is a Windows SQL Server as far as i know and I have tried several Settings, of which None works. I have also installed Driver for ODBC. I would like to Import Settings into SQL developer as applied in MS Access, is there any possibility?
No, SQL Developer is a Java application and uses a JDBC driver.
But if you look at the odbc properties for your connection, those should largely translate to what you need to define a basic connection.
Oracle:
Server name or IP address of the DB, port # for the listener, and the name of the SID or Service, plus a valid username and password is all you need to connect to Oracle.
What error do you get when you try to connect?
Show us what you're trying.
Update:
You're trying to connect to SQL Server but you're getting"
Native SSPI library not loaded
You're trying to use OS Authentication for your connection. For this to work with the jTDS driver, you need to copy a DLL file named ntlmauth.dll (which is for NT authentication) under the jtds-x.x.x-dist\x86\SSO\ or jtds-x.x.x-dist\x64\SSO\, to any directories in the PATH environment.
Please update your question such that's it's clear you're connecting to SQL Server and share the error message so others can find it.
I imagine this question is a duplicate of many previous iterations of the same challenge.

Is Oracle Instant Client an actual database?

I want to create a small dev database just to use for developing my application. I've downloaded the Oracle Instant client and followed the directions to "install" (ie, copy/paste and set up some environment variables), but I can't find any information on how to connect, login, create database, etc, or even exactly what Instant Client is, specifically. So, a few specific questions:
Is Instant client just a set of drivers and components that allow you to connect to an existing database, or can you use Instant Client to create and administer a completely new database?
If it CAN be used to create a new database:
How do you "start" (or similar concept) the database so that it is ready for connections.
Because there is no installation, and no default configuration, I haven't set up a default schema, port, etc. So, what is the default connection information to connect to the database for the first time?
For example, I use SQL Developer to connect to and administer my remote database, so how could I connect to Instant Client from SQL Developer?
The client is JUST a client.
You'll want to download the Oracle Database installs. The easiest would be the XE (Express Edition) - it's free, and gets going on windows or linux pretty quick.
You'll then install the server software and THEN create a database. Then you can use your client to connect to said database. You can use your client now to connect to any Oracle database running on any server that you can see on your network.
There are more alternatives.
I talk about this in more detail here.

How to sniff Oracle's credentials from a connection attempt to the database?

I have a legacy application, which connects to the configured Oracle database.
It seems it has some logic that alters the database credentials as it is unable to successfully log in to the Oracle database, while sqlplus started on the same machine is able to log in.
The error I am getting is: [DataDirect][ODBC Oracle Wire Protocol driver][Oracle]ORA-01017: invalid username/password; logon denied
How to find out what is the database username and password that are sent to the database?
What I have tried so far:
Enabled auditing of failed sign-on attempts on Oracle (audit create session whenever not successful). It does not solve the issue, because it only logs the username, which seems to be correct, without the password.
Used a sniffer to eavesdrop the network traffic between the machine running the application and the database, but since Oracle's TNS protocol is encrypted, it did not help a lot.
Started a server using netcat on port X, provided port X in the application configuration file. The application did connect to my server, that is how I know the application is connecting to the correct server. But since the TNS protocol is pretty complex (requires a series of messages to be exchanged between the client and the server) I hope there is a simpler why of achiving what I want without having to reverse engineer Oracle and implementing my own server.
Enabled tracing of the JDBC driver (Trace=1, TraceFile, TraceDll). The trace file shows the correct username, but obviously the password is not getting logged.
My environment:
Database: Oracle 11g
Application runs on: Solaris
Application uses: DataDirect ODBC Oracle Wire Protocol v70
I not sure, but if connection established by ODBC driver (as described in question tags) then you can try ODBC sniffing tools like ODBC Tracing.
Citation:
Password "Sniffing" Using Trace
ODBC provides a means for tracing the conversation taking place between the driver and the host database. Used by developers for testing purposes, the tracing feature is designed to help programmers find out exactly what is going on and to help fix problems. However, tracing (also called "sniffing") can be used by nefarious bad guys to retrieve user passwords.
When tracing is enabled, communications with the host are written to a file. This includes the user ID and password, which are captured in plain text.
Update
SQLPlus connects to Oracle with OCI interface, but DataDirect ODBC driver uses it's own proprietary implementation of communication protocol. So, most probable point of failure is driver misconfiguration or incompatibility.
DataDirect provides some tools for ODBC drivers diagnostics, but only option applicable to case described in question is using snoop utility, which acts like a netcat which already tried.
Because connection failed at credential verification stage, the most probable source of error is using localized symbols for user name or password. There are some issues with Oracle authentication process, listed in DataDirect Knowledge Search (search for ORA-01017).
It seems that DataDirect provides two separate version of driver with and without Unicode support, therefore one of possible points of failure is to connecting with non-Unicode version of driver to Unicode version of database and vice verse.
P.S. For now I don't have any experience with DataDirect ODBC driver. So it's only suggestions about possible source of failure.

Logging into oracle db as a global user

We are trying to shape up an old, 2 tier, Delphi based application. It originally uses database authentication, we'd like to transform the db user accounts to global users, so an OID server could perform the authentication instead of the database.
The Delphi program can no longer log into the database if the account is a global user. I'm trying to understand the login protocol, so far without results.
Similar thing happens with SQLDeveloper, I can't connect as a global user. SQLPlus however works with both kinds of users. We checked the information flow with Wireshark. When the dbserver asks back for a password, the SQLPlus sends it, while the SQLDeveloper doesn't send a password when attempting to connect as a global user.
The client sends the application name too in the login request. Is it possible that we have to store the client app name in the LDAP itself?
To connect to Oracle using OID, application must properly configure OCI (Oracle Call Interface). The data access components (which one ?), you are using, must set OCI_ATTR_DISTINGUISHED_NAME session attribute. If that is not done, then you will be not able to connect to Oracle server using ODI and OCI.
You should check your components documentation for this feature. And if it is not implemented, then discuss this issue with the components vendor. Actually, there is not much work to implement, but some work to setup testing environment is required ...

Resources