我无法使用 NTS 和 ODP 作为 sysdba 连接到我的 oracle 数据库(目标是使用大量没有任何密码的维护脚本)。我做了一些研究但没有成功,所以我来了。
这是我使用的 powershell 代码:
$srvOra = "oracle_server"
$port = 1521
$serviceName = "serviceName"
Add-Type -Path "C:\some_rep\Oracle.ManagedDataAccess.dll" #version 4.121.2.0
$connectionString = "User Id=/;DBA Privilege=SYSDBA;Data Source=" + "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)" + "(HOST=$srvOra)(PORT=$port))(CONNECT_DATA=" + "(SERVICE_NAME=$serviceName)))"
$connection = New-Object Oracle.ManagedDataAccess.Client.OracleConnection($connectionString)
$connection.open()
这是我的结果:
- 从只有 odp dll 的多个服务器(2008r2、2012r2、2016 windows 服务器),我收到 ORA-01017 错误:用户名/密码无效;
- 从安装了 oracle 客户端的多台服务器,我收到相同的错误
- 从一个oracle服务器到另一个oracle服务器,连接成功*_*
事实:
oracle 数据库是 12.1.0.2.0 std,服务器是 2012R2 和 sqlnet.ora 仅包含以下 lign :
SQLNET.AUTHENTICATION_SERVICES = (NTS)
我的帐户是每个数据库服务器上 ora_dba 组的成员。
Fips 算法被禁用。
来自任何带有 oracle 组件的计算机的连接都可以使用 sqlplus /@some_entry 作为 sysdba。
任何帮助将不胜感激。谢谢你的时间 :)