服务器:solaris + oracle 8.1.7
客户端:win2Kpro +  c++builder开发客户端程序 + oracle 8.1.5client公司的一个销售管理程序平时用的好好的,某天因为另装一台oracle测试用服务器,结果竟使得所有用户桌面的客户端不能连接上正式的那个服务器。爆出错误:
     Unknown user name or password.
     [Oracle][ODBC][Ora]Invalid authorization specification.
     Alias: crm
(数据库sid是crm)最后一行什么意思?写asp程序测试客户机上的odbc是没问题的。从oracle net8 assistant测试tns name 也没问题。还有可能是什么问题呢?会不会因为windows2000的局域网的权限校验有问题?由于没有代码,我简直没辙了。附:
1)tnsnames.ora(client side):
CRM =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = crm)
    )
  )2)lisener.ora(server side):
LISTENER =
    (DESCRIPTION_LIST=
        (DESCRIPTION=
            (ADDRESS_LIST=
                 (ADDRESS (PROTOCOL=IPC)(KEY=EXTPROC))
            (ADDRESS_LIST =
                 (ADDRESS=(PROTOCOL=TCP)(HOST=dbserver)(PORT=1521))
            )
      )
      (ADDRESS_LIST=
          PROTOCOL_STACK=
                  (PRESENTATION = GIOP)
                  (SESSION=RAW)
           )
          (ADDRESS= (PROTOCOL=TCP)(HOST=dbserver)(PORT=xxxx))
SID _LIST_LISTENER=
    (SID _LIST=
      (SID_DESC=
          (SID NAME= DLSExtProc)
          (ORACLE_HOME=/opt/...)
          (PROGRAM=extproc)
      )
      (SID_DESC=
          (GLOBAL_DBNAME= SALES.CHINA.XXXX)
          (ORACLE_HOME=/opt/...)
          (SID_NAME=crm)
      )
)

解决方案 »

  1.   

    c:\tnsping 主机连接串看下是不是能正常返回,还要看IP是不是重复了在服务端看监听服务的状态
    $lsnrctl 
    lsnrctl>status
      

  2.   


    C:\>tnsping 可以返回ok.
      

  3.   

    还有更好的方法trace吗?listener.log如下:crm.exe不能成功连接 and crm old.exe 可以。但是两者的log是一样的?08-3月 -05 15:17:18 * (CONNECT_DATA=(SID=crm)(CID=(PROGRAM=E:\...\crm.exe)(HOST=xxx)(USER=xxx))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.28)(PORT=2612)) * establish * crm * 008-3月 -05 15:17:36 * (CONNECT_DATA=(SID=crm)(CID=(PROGRAM=E:\...\crm old.exe)(HOST=xxx)(USER=xxx))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.68)(PORT=2617)) * establish * crm * 0
    08-3月 -05 15:17:36 * (CONNECT_DATA=(SID=crm)(CID=(PROGRAM=E:\...\crm old.exe)(HOST=xxx)(USER=xxx))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.28)(PORT=2619)) * establish * crm * 0