I have one problem with TSQLConnection component. I use it to connect Oracle SQL database, everything was good, but now I get that error " the password will expire within 7 days", I know this is SQL warnings, but when I use oracle session component for connect to database I did not get that error. Please help me, it is very important for me. My program must work :( I will wait you, thanks in advance.
I'm not familiar with Delphi, but am very familiar with the reported error message."the password will expire within 7 days", is an ORA-28002. If you only get that when connecting from MSSQL (via a linked server) but not when connecting directly to Oracle, then I'd be very confident that the oracle username defined with the linked server is NOT the same as you are using for a direct connection. You need to show us the username that is used by the linked server, and then the output of (connected directly to oracle as a user with DBA credentials)
select username,
account_status,
to_char(lock_date,'dd-Mon-yyyy hh24:mi:ss') as lock_date,
to_char(expiry_date,'dd-Mon-yyyy hh24:mi:ss) as expiry_date
from dba_users
where username='USER_IN_QUESTION';
obviously substituting your real user in question.
I've written about expiring passwords here: I'm pretty sure a lot of it will be applicable to your situation.
Related
I'm getting reacquainted with Oracle after several years and Oracle 18 XE is causing some problems. I use SQLDeveloper to connect as the SYSTEM user. Then when I create a new user cpp it says that is an invalid user name. I have to prefix new users with c##, so I created the user c##cpp. The c##cpp user is there under Other Users.
But when I try to create a new connection as the c##cpp user the connection fails. I've also tried creating the connection as just cpp, but that fails too.
What's up with creating users in Oracle 18 XE?
-------Update showing my connection parameters-------
I get the same error if I try to connect with SID XE.
Welcome back to Oracle.
Since you've been away, we added a Multitenant architecture. There is a Container Database - it has common users, with names like C##user.
What you're looking for is the actual database where your data is going to live, that's called a pluggable database. There you would go back to creating users, just like you did back before you left.
Make sure you connect to the pluggable database service. The default would be 'XEPDB1' - connect to THAT as sys or system, and then create your users.
It looks like the problem is that Oracle doesn't like lower case user names. When I put the username in double quotes the connection succeeds:
This is on Oracle 11. I gave up on Oracle 18 XE and installed Oracle 11. What a ridiculous waste of time.
I have database on apex.oracle.com and I want to make a connection to airflow.
This answer didnt help me: How to Connect Airflow to oracle database
How to find the sid of my database?
I googled after alot of search I found a answer. Which was giving an error.
I executed this
grant select on v_$sql to username;
This gives an error:
ORA-00933: SQL command not properly ended
Please help me in complete detail if possible.
What should be entered in host name? I don't have any hosting platform. Should database need to be deployed or hostname can be found for a database created on apex.oracle
As far as I can tell (which doesn't have to be correct), give up. Database on apex.oracle.com isn't accessible from the outer world. As stated,
This site (apex.oracle.com) is intended only for the customer
evaluation of Oracle Application Express.
so - you should use it to test your Apex skills and nothing more. If you need to use a database, download and install your own copy - it is available on the Oracle Technology Network, free for evaluation purposes.
Or, consider contacting one of database hosting companies, if you want to access it on the Internet.
I have got a workspace in apex.oracle.com , Now , I want to connect to that database through JDBC from ubuntu-14.04 machine. please explain the steps , From where should I download the drivers and what should be the arguments in
DriverManager.getConnection();
step by step please. Thank you
You will not be able to connect to the database that's supporting the APEX instance on apex.oracle.com. If you are hosting your own instance, it's no different than connecting to any other Oracle database.A quick code snippet can be found here: http://www.java2s.com/Code/Java/Database-SQL-JDBC/TestOracleJDBCDriverInstallation.htm. You will need a password for the user/schema that you wish to connect to. If you don't have one, then talk to your DBA.
BTW, please remember that no production-type application and data should be used on the public APEX instance.
Maybe your problem is (or was) that you cannot connect via JDBC using the users you administered in your APEX workspace.
It seems to me that APEX users are not regular users for DB connections via JDBC. If my assumption is right, then you need to create database user with sufficient privileges to access the workspace tables.
Oracle SQL Developer 4.0.1.14
I currently have an Oracle database with a user who contains a set of tables, views, etc. However, I would like this schema to be shared among multiple people with different logins.
My company has a domain and each employee logs into their computers through this domain, for example
COMPANY_NAME/username
I am hoping to be able to use windows authentication to log each user into the database. This way everyone at the company will automatically have a login with a password they are used to.
In Oracle SQL Developer, I have tried ticking "OS Authentication", and received "Invalid username/password" upon testing the connection. Do I need to create an Oracle user for each domain?
I have also tried checking "Use OCI/Thick driver", but it cannot be checked unless "Use Oracle Client" is configured, which I'm also unsure about.
This question appears to be a duplicate:
Windows Authentication to Oracle for domain group, however the tutorial link is dead. I have not been able to find another tutorial for how to set this up anywhere.
There is a server-side parameter called os_authent_prefix that is typically set to OPS$, and the network user id needs to be prefixed with this in addition to having the IDENTIFIED EXTERNALLY option added to the create user statement.
So if your Windows account id is hambone, then your OS-authentication login would be OPS$hambone, and you don't need a password. I used it for years, and it never required the domain to be specified for a Windows account, which was nice because it meant the same credentials worked for my Unix account.
SQL*Plus, for example would look like:
sqlplus OPS$hambone/#myserver
Likewise, connection strings for applications just have nothing for the password.
For Toad, you would put OPS$hambone as userid and leave the password blank. SQL Developer, I'm honestly not sure -- I can't stand it; I use PL/SQL Developer, but with the various options they have I'd imagine you select OS authentication and/or put the OPS$hambone.
Read the caveats/security warnings on OS authentication. I think in a private network the risks are outweighed by the advantages, but that's for you to decide.
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