OBIEE 12C authorization failed based on database view - oracle

In our environment (OBIEE 12C installed on Linux) we use an external authentication provider based on a view in our database. After logging in, authorization happens via a session variable initialised in an initialisation block in the RPD with a query based on the same view as for authentication.
What happened a few days ago is that people could log in (so the password saved in the view was being checked correctly) but authentication failed and they got the value of our default provided in the initialisation block.
Looking at the logs we found this error:
[nQSError: 17001] Oracle Error code: 3135, message: ORA-03135: connection lost contact
and
Query for Initialization Block 'AUTHORISATION' has failed.
Looking in the logs for authorization, nothing bad was found here but we can't seem to figure out how authentication worked and authorization didn't since they are based on the same database view. Has anyone ever had this issue before?
We've faced this issue multiple times but found that some users had the right authorization and authentication in between the errors.
Any help would be great, also where I can look further to troubleshoot this. Thanks!

You're having connectivity issues with the DB and the init block can't run. Nothing to do with OBI or the query - that's rather network, connectivity, firewall etc etc

Related

Blob container doesn't allow the creation / reading of an external table. Is there any way to trace the exact problem?

About a month ago, all the external tables built upon parquet files(ADLS Gen2, Synapse) stopped working with the following error message:
Unexpected error encountered checking whether directory exists or not:
AbfsRestOperationException: Operation failed: "Server failed to
authenticate the request. Please refer to the information in the
www-authenticate header.", 401
The access key wasn't rotated and even though I tried recreating new database scoped credentials, data sources, they didn't do anything.
Then I tried creating a new blob container with the same data and I was able to create external tables and run select statements over them.
Does anyone have a clue what the problem could be? At first I thought it was something from Azure, because the coincidence was that they had problems with Synapse. It may seem it's the SAS token, but if it so, why am I not allowed to create other external tables over new SAS tokens? Plus, when a SAS token expires, it throws a 403.
My guess is it is something on configuration for this specific blob, or maybe the Login that I'm using(admin login on SQL Dedicated pool).
From the error it seems to be an authorization issue. If you are accessing the storage account from your synapse studio, the managed identity of your synapse workspace should have storage blob data contributor access on the storage account and container you are trying to access. Giving access using SAS key is not the best option rather use managed identity of your synapse workspace.
You can refer this link step 4 to achieve the same.

Issue with setting up Oracle Rest Data services

I have successfully installed Oracle REST Database Services version 3.0.4.60.12.48. I am able to access Oracle Apex but when I create a web-service and click on test button I get this error.
Error during evaluation of resource template: GET hr/employees/,
SQL Error Code: 28000,
SQL Error Message: ORA-28000: the account is locked
I have tried connecting to Oracle_apex_public user and every other user to check if any account is locked but I am able to connect to these account with SQLDeveloper.
I have also tried reinstalling and changing default tablespace inside ORDS configuration files, but still it's not working.
If anyone has an idea what is going wrong, please help.
Thank you for the response.
I manage to solve the issue, the cause was i was using same Passwords for all apex public and sys changing th

Confusion in configuration of SonarQube with PostgreSQL DB

I have SonarQube 5.6 version installed and RDS PostgreSQL DB connected to it on AWS. I have this setup since a long time and many projects run on every day schedule on SonarQube. Not getting any issue or errors there. but looks like my Database configuration is not correct. because when i looked into Database. I don't see much more movement or anything stored there. I have updated conf/sonar.properties files with database endpoint and credentials. It looks like it's connected. How to make sure this? like, my database is getting used by sonarqube?
Because sonarQube documentation is saying, No database required after 5.2 version.
can someone please explain me architecture, What is right way to setup this?
I am getting an error as follow,
INFO web[o.sonar.db.Database] Create JDBC data source for jdbc:postgresql:sonarprod.cyfa9ycgfky0.us-east-1.rds.amazona‌​ws.com 2017.02.24 19:54:03
ERROR web[o.a.c.c.C.[.[.[/]] Exception sending context initialized event to listener instance of class org.sonar.server.platform.PlatformServletContextListener java.lang.IllegalStateException: Can not connect to database. Please check connectivity and settings (see the properties prefixed by 'sonar.jdbc.').
I have checked everything is correct in connection string, username, password. all looks correct to me. I have specific ports open for communication. what does this error means? what am i missing?
Thanks in Advance.
You can see which database is used by SonarQube by having a look at server's log.
For instance, here's the entry you'll find when PostgreSQL is used :
2017.02.15 16:46:39 INFO web[][o.sonar.db.Database] Create JDBC data source for jdbc:postgresql://localhost:5432/sonar

VB6 user requested cancel of current operation Oracle error

I'm currently troubleshooting a VB6 application that sporadically comes up with the following error:
[Oracle][ODBC][Ora]ORA-01013: user requested cancel of current operation
All of the research I've done on this error states that it is either an actual request for cancellation by the user or a timeout. It can't be a request for cancellation because the input is coming in from an automated source, so it must be a timeout. One thing I read online was to un-check the query timeout checkbox in the DSN configuration box but my program uses a DSN-less connection to the database, which is an Oracle 10g database.
There are several queries in this program but it always fails on one query in particular, however I can't reproduce the error in a test environment using all of the same input to the program that caused the error in the first place.
A co-worker of mine suggested doing a rollback after each query even though the queries are read only because some kind of buffer might be getting filled up or something of the like, but this didn't work. At this point I don't even know how to continue troubleshooting it because I can't reproduce the error. If someone could give me any idea of what is going on and how to fix the problem I'd greatly appreciate it. Thanks in advance!
All of the options that you can choose when setting up a DSN can be specified in the connection string if you are using a DSN-less connection. If you want to disable query timeouts, you would add
QTO=F
to the connection string. So your new connection string would be something like
DRIVER={Oracle ODBC Driver};UID=Kotzwinkle;PWD=whatever;DBQ=instl_alias;QTO=F;

Oracle Connection String With Windows Authentication

We have a requirement to make our products work on Oracle as well as SQL Server (around which they were originally built). Unfortunately we don't have any in house Oracle development experience to speak of but as a senior dev it has fallen to me to lead the project. So far I have managed to make our app connect to an Oracle database (I'm using Oracle XE 11.2) by using the following connection string:
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=VS010-ORA11GR1)(PORT=1523))(CONNECT_DATA=(SERVICE_NAME=DEVORA)));User Id=dbo;Password=dbo;
The reason we decided to use this type of connection string is because we do not want to rely on changing tnsnames.ora on every client machine. However, as you can see this specifies an Oracle user and associated password. We also need to provide the ability to use the equivalent of SQL Server integrated security.
According to the literature I have read, to do this I simply need to specify / as the user id and then omit the password portion (as this is ignored anyway for Windows authentication). I also created the user in Oracle, making sure it matched the Windows user, with the following snippets:
CREATE USER "OPS$<DOMAIN>\<user>" IDENTIFIED EXTERNALLY;
GRANT CONNECT,RESOURCE TO "OPS$<DOMAIN>\<user>";
I also checked that the sqlnet.ora file on my local machine which hosts the XE instance and my dev environment contained the line:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
I understood that this would enable my app to connect to the Oracle database uing Windows Authentication. However what actually happens is that I get the following Oracle error message:
ORA-01005: null password given; logon denied
this doesn't make much sense because of course its null - it's supposed to be, according to the tutorials I've read.
The app targets .Net Framework 3.5, we are using the System.Data.OracleProvider and the actual connecting and so on is handled by Enterprise Library 5. Incidentally, I am aware of the deprecation of the OracleClient component but I just want this to work before I go into the extra complexities of changing providers.
Can anyone tell me what I'm missing? Have I chosen the wrong type of connection string? I apologise for any basic mistakes but I have always managed to avoid Oracle until now so my knowledge of it is close to zero.
Many thanks
I had the same problem and solved after adding this to conn. string:
Integrated Security=yes
To expand on the answer above by #Stikut. I tested this out with NHibernate 3.3.3.GA and it works.
user id=/;password=;Integrated Security=yes

Resources