查看: 3427|回复: 8

请教:ORA-28030

新世纪娱乐注册
论坛徽章:
0
跳转到指定楼层
1#
发表于 2003-4-3 09:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在一台win2000 professional  上装了oracle8.1.7
另一台sun e3000 solaris 上装了oracle8.1.7
打算在win2000上建个database link
select时报错:
ORA-28030: 服务器访问 LDAP 目录服务时遇到问题
oracle文档中的解释看不懂,不知如何下手!

问题:

If you are using Oracle Internet Directory as your ldap directory
我怎么判断是不是?局域网应该是吧?
Turn on tracing in Oracle Internet Directory. 怎么操作?

oidctl conn=oiddb1 server=oidldapd instance=2 stop
各参数意义怎样呢?在两台机子的oracle/bin目录下也都没有这个命令

请教大侠,怎么办?谢谢!

ORA-28030
This is a catch-all Oracle8i error that indicates something unanticipated went wrong with the RDBMS to LDAP directory query.

Tracing
You can use tracing to help debug. This is appropriate if the ldapbind (See: ORA-1017: Invalid username/password) fails, indicating that the directory's SSL instance is not working properly.

Oracle Internet Directory
If you are using Oracle Internet Directory as your ldap directory, use the following tracing procedure:

Turn on tracing in Oracle Internet Directory.

At the command line, stop the SSL Oracle Internet Directory instance, and restart it with debug flags ON:

oidctl conn=oiddb1 server=oidldapd instance=2 stop

oidctl conn=oiddb1 server=oidldapd instance=2 conf=1

flags="debug=65535" start

This starts up the SSL Oracle Internet Directory instance in full debug mode. Log files will be written to $ORACLE_HOME\ldap\log. Look at the file with an 02 and an s in its filename, because it is for the instance 2 server. The log files without the s are for the monitor process (oidmon) and the dispatcher. Look at the end of the log file immediately after you have tried your connect /@connect_identifier. One thing to look for is the string Distinguished Name to ensure that it matches the DN of your user.

To turn off Oracle Internet Directory tracing, restart via oidctl without the flags parameter.
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
2#
发表于 2003-4-3 09:58 | 只看该作者

ORA-28030: 服务器访问 LDAP 目录服务时遇到问题

sqlnet.ora

NAMES.DIRECTORY_PATH= (TNSNAMES)

使用tnsnames.ora 访问数据库
论坛徽章:
0
3#
 楼主| 发表于 2003-4-3 13:57 | 只看该作者
sqlnet.ora中有这一句呀!
tnsnames.ora是配好的
通过sqlplus两个都可以连上

sqlnet.ora中还有一句
SQLNET.AUTHENTICATION_SERVICES= (NTS)
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
4#
发表于 2003-4-3 14:04 | 只看该作者

NAMES.DIRECTORY_PATH= (TNSNAMES)

只保留 TNSNAMES

把其他的先删除掉

应该是你可能曾经无意中设置过 net8  使得数据库认为你想通过 LDAP 访问数据库而不是 tnsnames 方式

检查你的sqlnet.ora / tnsnames.ora  文件
和你的  database link 创建是否正确
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
5#
发表于 2003-4-3 14:07 | 只看该作者

注意

database link 中使用的 using  服务名

这个服务名是你的  数据库所在服务器的 tnsnames而不是你的client 的
所以猜测在数据库服务器中没有找着  服务名
然后顺着  NAMES.DIRECTORY_PATH= (TNSNAMES,...........)   指定的搜索顺序去 LDAP ,ONAMES  什么里面去找访问方式
于是告诉你 LDAP 无法访问
论坛徽章:
0
6#
 楼主| 发表于 2003-4-3 18:44 | 只看该作者
sqlnet.ora中有这一句呀!
tnsnames.ora是配好的
通过sqlplus两个都可以连上

sqlnet.ora中还有一句
SQLNET.AUTHENTICATION_SERVICES= (NTS)
论坛徽章:
0
7#
 楼主| 发表于 2003-4-4 09:47 | 只看该作者

Re: 注意

最初由 biti_rainy 发布
[B]database link 中使用的 using  服务名

这个服务名是你的  数据库所在服务器的 tnsnames而不是你的client 的
所以猜测在数据库服务器中没有找着  服务名
然后顺着  NAMES.DIRECTORY_PATH= (TNSNAMES,...........)   指定的搜索顺序去 LDAP ,ONAMES  什么里面去找访问方式
于是告诉你 LDAP 无法访问 [/B]


仍然不行,配置如下:

windows(本机)中tnsnames.ora
#本机的
PCSDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.6)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = pcsdb)
    )
  )


#unix下的
PCSDB2 =                                                     
  (DESCRIPTION =                                             
    (ADDRESS_LIST =                                          
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.3)(PORT = 1521))
    )                                                        
    (CONNECT_DATA =                                          
      (SERVICE_NAME = pcsdb2)                                
    )                                                        
  )

windows下sqlnet.ora
# SQLNET.ORA Network Configuration File: d:\oracle\ora81\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

#SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES)
windows中数据库的create 语句:
create public database link PCSDB5
  connect to CURRENT_USER
  using 'PCSDB2';
两个库用户名密码都是一样的,用户权限都是DBA


unix下的sqlnet.ora
# SQLNET.ORA Network Configuration File: /opt/ORACLE/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

NAMES.DIRECTORY_PATH= (TNSNAMES)

unix下的tnsnames.ora

PCSDB2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = e3000)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = pcsdb2)
    )
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
8#
发表于 2003-4-4 10:08 | 只看该作者

o

没有理由

怎么会尝试去使用 LDAP ?

CURRENT_USER
Specify CURRENT_USER to create a current user database link. The current user must be a global user with a valid account on the remote database for the link to succeed.

If the database link is used directly, that is, not from within a stored object, then the current user is the same as the connected user.


When executing a stored object (such as a procedure, view, or trigger) that initiates a database link, CURRENT_USER is the username that owns the stored object, and not the username that called the object. For example, if the database link appears inside procedure scott.p (created by scott), and user jane calls procedure scott.p, the current user is scott.


However, if the stored object is an invoker-rights function, procedure, or package, the invoker's authorization ID is used to connect as a remote user. For example, if the privileged database link appears inside procedure scott.p (an invoker-rights procedure created by scott), and user jane calls procedure scott.p, then CURRENT_USER is jane and the procedure executes with Jane's privileges.


create public database link PCSDB5
connect to   youruser  identified by yourpasss      ---------  do  not use current_user  ?
using 'PCSDB2';
论坛徽章:
0
9#
 楼主| 发表于 2003-4-4 10:34 | 只看该作者
拿下!!
你说的对,那样写之后,
再select数据时,报错02085,
改link name 为database name 后完成,
非常感谢!!

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
新世纪娱乐注册 申博现金官网 返回列表
网站地图 大三巴娱乐欢城迎您 亚虎娱乐线路一 亚虎娱乐网址
申博怎么登入不了 申博官网注册主页 888真人娱乐登陆 申博亚洲上网导航
申博在线开户 新太子国际娱乐登入 大无限彩票网址登入 易博彩票安徽快三
亚虎娱乐唯一官网 亚虎娱乐官网登录 网页游戏斗地主 e学e百
斗地主小游戏 真人游戏电影 大三巴娱乐ks99 石家庄希尔顿
8CYS.COM 67ib.com rp138.com S618G.COM 1188DZ.COM
4888tyc.com XSB885.COM 9927w.com XSB594.COM 88sbsun.com
688PT.COM 129SUN.COM 658PT.COM 587sj.com 7777ib.com
XSB838.COM 8AQS.COM XSB1111.COM 844TGP.COM 638PT.COM