我正在尝试将我的grails项目连接到windows(8)系统中的Oracle数据库(Oracle 12c).但是,每当我运行我的应用程序时,我都会遇到异常:
Caused by: org.apache.commons.dbcp.SQLNestedException:
Cannot create PoolableConnectionFactory (ORA-28040:
No matching authentication protocol)
Caused by:
java.sql.SQLException: ORA-28040:
No matching authentication protocol
Run Code Online (Sandbox Code Playgroud)
)
SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
Run Code Online (Sandbox Code Playgroud)
根据互联网建议,我也尝试编辑我的 *.ora文件,但它无法正常工作.
我在sqlnet.ora文件中添加了以下代码段:
Caused by: org.apache.commons.dbcp.SQLNestedException:
Cannot create PoolableConnectionFactory (ORA-28040:
No matching authentication protocol)
Caused by:
java.sql.SQLException: ORA-28040:
No matching authentication protocol
Run Code Online (Sandbox Code Playgroud)
在这里我尝试分配(10,11,12),但它们都没有工作.
有人可以帮我这个吗?
我在其中一台服务器上遇到了挑战.我有一个ASP.NET MVC 3应用程序,需要连接到Oracle 12c数据库.它使用以下连接字符串执行此操作:
User ID=myuserid;Password=mypass;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=<IP ADDRESS>)(PORT = 1521)))(CONNECT_DATA=(SERVICE_NAME=PDB1)));
Run Code Online (Sandbox Code Playgroud)
我也使用Oracle的Oracle.ManagedDataAccess,版本4.121.1.0.每次尝试连接都会导致以下错误:
ORA-01017: invalid username/password; logon denied
Run Code Online (Sandbox Code Playgroud)
我可以使用上述凭据在我的桌面上成功连接.我在另一台服务器上使用相同的代码,但使用较旧的,未托管的库版本,并且可以使用上述凭据成功连接.但是,我希望运行代码的服务器每次都使用相同的凭据来启动,这些凭据可以在不同的服务器上成功建立连接.
在失败的服务器上,我可以:
我已在所有地点检查过TNSNAMES.ORA,看起来它们是正确的.
在多次访问数据库之后,该帐户实际上已锁定,表明我确实在访问数据库并且数据库不喜欢所显示的凭据.我检查了以前成功连接的应用程序,但它们也失败并显示一个错误,表明该帐户已被锁定.解锁帐户导致这些应用程序成功连接,但我遇到问题的服务器除外.
我没办法.
有没有人对可能导致此问题的原因有任何其他建议?
编辑:
我在本地计算机和违规服务器上安装了WireShark.我捕获了桌面和数据库之间以及违规服务器和数据库之间的通信.我发现我的桌面传达了密码:
0080 35 42 31 41 43 34 30 00 01 01 01 0d 0d 41 55 54 5B1AC40......AUT
0090 48 5f 50 41 53 53 57 4f 52 44 01 40 40 43 30 36 H_PASSWORD.@@C06
00a0 37 39 42 31 31 42 46 36 42 41 43 44 39 30 38 …Run Code Online (Sandbox Code Playgroud) 嗨,我尝试在 Oracle 18c XE 中创建一个新用户,但我得到了
ORA-65096: invalid common user or role name 写入时出错
create user student identified by "student";
我尝试通过以下方式将容器更改为 PDB
SQL> alter session set container =PDB;
据我所知,您应该在尝试创建本地用户时进行设置,但出现以下错误:
ORA-65011: Pluggable database PDB does not exist.
您知道如何从命令提示符创建具有所有权限的新用户吗?