网络共享上带有tnsnames.ora的SQL Server链接服务器-ORA:12154

Sam*_*Sam 8 sql-server oracle tnsnames linked-server

在网络共享上使用tnsnames.ora文件时,使SQL Server链接服务器连接到Oracle时出现问题。

如果我将tnsnames.ora文件复制到本地服务器,则链接的服务器可以正常工作。但是,我们将文件保留在网络共享上。我的sql服务帐户对共享具有读取权限。我将TNS_ADMIN系统变量配置为网络共享,链接的服务器不再起作用。我得到ora-12154:无法解析指定的连接标识符。tnsping和sqlplus在服务器上工作。当我使用过程监视器进行进一步调查时,我看到:

Operation: createFile
Result: ACCESS DENIED
...
Impersonating: domain\MyLogin
Run Code Online (Sandbox Code Playgroud)

这似乎是一个问题,但也许是假阳性?如果某个进程试图模拟我的帐户并访问远程资源,则该进程将失败,因为我们没有将Kerberos配置为处理双跳。

在配置了网络共享的情况下,SQLPlus和TNSPing可以正常工作。

我看了这篇文章,尝试了看似相关但没有成功的项目。

附加信息:

sqlnet.ora具有:SQLNET.AUTHENTICATION_SERVICES =(NTS)NAMES.DIRECTORY_PATH =(TNSNAMES,EZCONNECT)

我可以将文件浏览器作为服务帐户打开,然后打开tnsnames文件。

ora*_*600 0

作为 Oracle DBA,我有时必须使用 Windows。也许您可以借鉴我在 Windows 上使用 Oracle 的经验。

设想:

Oracle DB 在域用户下运行。我想从位于 Windows 共享上的备份恢复数据库(听起来像“读取”,但显然不是)。我(或者说 Windows 团队)没有设法找到授予所需权限的正确方法。

经过多次尝试后,管理员将“一切”授予整个 Oracle 服务器。

即使 Oracle 进程在用户上下文中运行,我们也没有找到一组仅针对用户的权限。只有整个服务器的权限才允许恢复进程访问数据。

从安全角度来看,这是一个可怕的解决方案!但也许它会帮助您更接近解决方案(如果是这样,请分享:-))。