ORA-12154TNS:无法解析指定的连接标识符

1问题的描述

Oracle11g server 64bit服务器端安装在Windows Server2008 Enterprise上,安装Oracle11g client 32bit,通过SQL Plus以sysdba身份可以连接数据库,并且创建表空间、用户、授权成功,如下图所示。

但是在连接数据库时出现了一些问题:

(1)在客户端配置服务,通过PLSQL连接数据库,出现错误“ora-12154: TNS:无法解析指定的连接标识符”;

(2)通过PLSQL能够正确连接Oracle11g,但是同样的用户名密码在VS2010中却无法连接,报错“ORA-12154: TNS:无法解析指定的连接标识符”;

(3)在VS2010中能够正确访问Oracle11g,但是网站发布之后数据无法访问,报错“ORA -12154: TNS:无法解析指定的连接标识符”。

2问题的解决

2.1在客户端配置服务,通过PLSQL连接数据库,出现错误“ORA-12154: TNS无法解析指定的连接标识符”

(1)解决本问题需要给系统添加环境变量TNS_ADMIN并且将oracle服务器端和客户端“….NETWORK\ADMIN”路径复制给该环境变量,并且将oracle客户端的路径放在前面,如下图所示。

(2)然后在PLSQL中(点击“取消”,在没有成功登陆的情况下也可以设置连接属性),点击“tools”->“preferences”,在对话框中设置oralce home和OCI library,其中Oracle home选择所安装的oracle服务器端,oci library设置oracle 32位客户端的“****product\11.2.0\client_1\bin\oci.dll”路径。

2.2通过PLSQL能够正确连接Oracle11g,但是同样的用户名密码在VS2010中却无法连接,报错“ora-12154: TNS:无法解析指定的连接标识符

这个问题的出现实在让人无语,正常情况下在VS2010中选择“Server Explorer”->Data Connection->Add Connection输入数据库连接的信息,是可以成功连接oracle数据库的,但是让人不解的是同样的用户名/密码在PLSQL中可以正常登陆,但是在这里却会显示上图所示的错误。这样在运行VS程序时,显示上述错误。

更莫名其妙的事情是,我们在客户端重新配置了一个新的服务,并用新的服务去连接的时候,居然成功了。至此,我们反思,只有一种原因,那就是之前我们用的服务是在设置环境变量“TNS_ADMIN”之前配置的,由于编辑了环境变量,导致Oracle无法获取之前的服务名称。

2.3VS2010中能够正确访问Oracle11g,但是网站发布之后数据无法访问,报错“ORA-12154: TNS:无法解析指定的连接标识符

当你解决了遇到的问题,觉得自己已经取得成功的时候,往往还会有新的问题出现,现实就是这样无情,它会迫使你将一个问题彻底搞清楚。

在VS程序中能正确访问的Oracle数据库,当网站在IIS中被发布以后,数据库仍旧不能访问,该死的“ORA-12154: TNS:无法解析指定的连接标识符”。

  出现本问题是因为Oracle的访问权限问题,第一种情况是Oracle目录缺乏Authenticated Users用户权限,第二种情况是缺乏interner来宾用户权限。

Authenticated Users权限设置参考博客——

  Asp.Net 应用程序在IIS发布后无法连接oracle数据库问题的解决方法http://www.cnblogs.com/zhangronghua/archive/2008/10/07/1305597.html  

  具体方法是在oracle安装目录(d:"oracle")上右键,属性->安全,选中Authenticated Users将权限的读取和运行项的勾去掉,再打上,然后点击应用,再点击高级,选中“用在此显示的可以应用到子对象的项目替代子对象的权限项目”,点击确定,然后重新启动机器 。

  需要注意地方是设置完权限后,一定要重启电脑才会权限设置才会生效。

添加internet来宾用户

  (1)在Oracle目录上右击选择“属性”,显示如下对话框。

  (2)点击“编辑”进入权限编辑对话框,如下图所示。

  (3)点击“添加”显示如下对话框。

  (4)点击“高级”进入用户和组选择对话框。选择internet来宾用户“IIS_IUSRS”,然后一路确定即完成该用户权限的设置。操作完成后请牢记一定要重启电脑,设置才能生效。

 关于添加aspnet用户

  网上有博主说这个问题是由于Oracle目录没有aspnet用户访问权限所致,而有些情况下电脑上虽然安装了vs但是还是会没有aspnet用户,本人按照博客上的方法——下图所示添加aspnet用户,但是该操作虽然能够成功完成,但是系统用户和组中还是不会出现aspnet用户。奇怪是不去管它,只进行Authenticated Users权限设置和添加internet来宾用户也可以在发布后的网站内成功访问Oracle数据库。

3参考文献

[1] ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法

http://www.blogjava.net/freeman1984/archive/2011/04/15/348350.html

[2] http://bbs.csdn.net/topics/390312212

[3] Oracle 10g ORA-12154: TNS: could not resolve the connect identifier specified 问题解决!

http://www.blogjava.net/wahahacj/archive/2007/11/19/161689.html

4致谢

感谢杨师兄的鼎力相助,感谢各位博主的热情分享。

ORA-12154:TNS:无法解析指定的连接标识符的更多相关文章

  1. ORA-12154:TNS:无法解析指定的连接标识符

    问题:ORA-12154:TNS:无法解析指定的连接标识符 原因:没有配置tnsnames.ora文件 解决方案: 配置环境变量变量名:ORACLE_HOME 变量值:如:D:\Database\pr ...

  2. Oracle几个基础配置问题:ORA-12154: TNS: 无法解析指定的连接标识符、ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务、ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序

    问题1:ORA-12154: TNS: 无法解析指定的连接标识符 在一台服务器上部署了Oracle客户端,使用IP/SID的方式访问,老是报ORA-12154错误,而使用tnsnames访问却没有问题 ...

  3. <转>ORA-12154: TNS: 无法解析指定的连接标识符

    相信作为ORACLE数据库的开发人员没有少碰到“ORA-12154: TNS: 无法解析指定的连接标识符”,今天我也又碰到了类似的情况,将我的解决方法进行小结,希望能对碰到同样问题的友人们提供帮助. ...

  4. Oracle数据库ORA-12154: TNS: 无法解析指定的连接标识符详解

    ORA-12154: TNS: 无法解析指定的连接标识符(转自http://www.cnblogs.com/psforever/p/3929064.html) 相信使用过Oracle数据库的人一定碰到 ...

  5. ORA-12154 TNS无法解析指定的连接标识符

    又是这个百无聊赖的问题,尽管问题芝麻点大,却让我们好找啊! 非常久没有安装oracle了.今天安装11g的时候,用PLSQL Developer连接时,就出现了这个俗不可耐的问题:ORA-12154 ...

  6. C#连接oracle数据库提示ORA-12154: TNS: 无法解析指定的连接标识符

    C#连接oracle数据库提示ORA-12154: TNS: 无法解析指定的连接标识符如果PLSQL Develope能连接上而用代码无法连接上则可以考虑sqlnet.ora文件中是否有NAMES.D ...

  7. PL/SQL连接远程服务器数据库,出现ORA-12154: TNS: 无法解析指定的连接标识符。

    故障环境:上礼拜新装了一台服务器(win server2008r2),并在服务器上安装了ORACLE 11g database.且已经做好监听配置,开通了1521端口. 我又在局域网内另一台pc端装了 ...

  8. oracle 可以连接数据库,vs连不上. 报错提示:ORA-12154: TNS: 无法解析指定的连接标识符

    方法1:问题:VS 连接 Data Source=ORCL_Service19;User Id=*;Password=* 连接不上 oracle 可以连接数据库,vs连不上,报错提示:ORA-1215 ...

  9. PL/SQL登录Oracle18数据库:ORA-12154:TNS无法解析指定的连接标识符

    PL/SQL登录Oracle18数据库出现ORA-12154:TNS无法解析指定的连接标识符解决以下问题:首先更改Oracle客户端的tnsnames.ora,我的路径是:D:\OracleSQL\n ...

  10. 解决 ORA-12154 TNS无法解析指定的连接标识符

    相信作为ORACLE数据库的开发人员没有少碰到"ORA-12154: TNS: 无法解析指定的连接标识符",今天我也又碰到了类似的情况,将我的解决方法进行小结,希望能对碰到同样问题 ...

随机推荐

  1. 理解DOM中的事件流

    浏览器发展到第四代时(IE4和Netscape Communicator 4),浏览器团队遇到一个很有意思的问题:页面的哪一部分会拥有特定的事件?想象下在一张纸上有一组同心圆,如果你把手指放在圆心上, ...

  2. js控制div颜色

    <html><head></head><style>#div1{width:400px;height:400px;background-color:re ...

  3. 在.NET2.0中解析Json和Xml

    在.NET解析json有很多方法,这里介绍最简单也用的最多的一种. 一.添加引用 解析Json,先下载开源控件 Newtonsoft.Json.dll 下载地址:http://files.cnblog ...

  4. 如何给WordPress安装百度统计代码

    1.注册并登录百度统计,点击页面顶部的“网站中心”,然后点击右上角“+ 新增网站”,填写网站域名确定后,点击“复制代码”:2.登录 WordPress 后台,点击左侧导航栏“外观”里的“编辑”,然后点 ...

  5. Linux动态库的查找路径

    前两天写了一个动态库,然后试图编译到程序里面去运行,结果发现编译的时候通过gcc的-L参数来指定路径仅仅能让编译通过,运行时还是会出问题的. 比如下面这个例子: main.c是主程序,sum.c中间含 ...

  6. Spring Richclient — 企业级富客户端开发框架介绍,第 1 部分

    Spring Richclient — 企业级富客户端开发框架介绍,第 1 部分 http://www.ibm.com/developerworks/cn/java/j-lo-spring-richc ...

  7. 将数组之中的省份市区地区ID改成对用中文字符

    数据表数据源的省市区联动: 原始数据: //获取所有学校信息 $school=D('school'); $info=$school->getList(); 数据如下: 1 => array ...

  8. mac 安装lua并配置Subline Text2 的lua开发环境

    1 .下载相应的lua安装包 方法 一 Mointain Lion - Lua 5.2.1 Lion - Lua 5.2.1 Snow Leopard - Lua 5.2.1 Lua 将默认安装到 / ...

  9. js 将json字符串转换为json兑现

    在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键.例如:JSON字符串:var str1 = '{ &quo ...

  10. nginx安装 nginx: [emerg] getpwnam(“www”) failed 错误

    inux 64系统中安装nginx1.3时如果出现错误:nginx: [emerg] getpwnam(“www”) failed解决方法1:      在nginx.conf中 把user nobo ...