今天碰到了一個有趣的問題
oracle用戶可以tnsping通,普通用戶tnsping報錯
用普通用戶tnsping數據庫的時候報
TNS-03505: Failed to resolve name
而用oracle用戶tnsping數據庫的時候卻可以ping通
<34 linux-sit:/home/smsds>tnsping orarpt
TNS Ping Utility for Linux: Version 11.1.0.6.0 - Production on 24-DEC-2011 15:33:18
Copyright (c) 1997, 2007, Oracle. All rights reserved.
Used parameter files:
/home/oracle/product/11.1.0/db_1/network/admin/sqlnet.ora
TNS-03505: Failed to resolve name
oracle@linux-sit:~/product/11.1.0/db_1/network/admin> tnsping orarpt
TNS Ping Utility for Linux: Version 11.1.0.6.0 - Production on 24-DEC-2011 15:35:42
Copyright (c) 1997, 2007, Oracle. All rights reserved.
Used parameter files:
/home/oracle/product/11.1.0/db_1/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.39)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orarpt)))
OK (0 msec)
到底是什麼原因呢,查看了tnsnames.ora發現也沒問題
oracle@linux-sit:~/product/11.1.0/db_1/network/admin> more tnsnames.ora
# tnsnames.ora Network Configuration File: /home/oracle/product/11.1.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
orarpt =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.39)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orarpt)
)
)
查看下文件權限,發現問題在這,tnsnames.ora的權限有問題
oracle@linux-sit:~/product/11.1.0/db_1/network/admin> ll
total 16
-rw-r--r-- 1 oracle oinstall 335 2011-12-22 15:58 listener.ora
drwxr-xr-x 2 oracle oinstall 144 2011-12-22 15:18 samples
-rw-r--r-- 1 oracle oinstall 187 2007-05-07 23:03 shrept.lst
-rw-r--r-- 1 oracle oinstall 188 2011-12-22 15:58 sqlnet.ora
-rw-r----- 1 oracle oinstall 328 2011-12-24 15:21 tnsnames.ora
修改試試chmod 755 tnsnames.ora
再用普通用戶tnsping一下,問題解決
<34 linux-sit:/home/smsds>tnsping orarpt
TNS Ping Utility for Linux: Version 11.1.0.6.0 - Production on 24-DEC-2011 17:11:50
Copyright (c) 1997, 2007, Oracle. All rights reserved.
Used parameter files:
/home/oracle/product/11.1.0/db_1/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.39)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orarpt)))
OK (0 msec)