今天闲来无事,在网上看了一篇,使用外部表查看oracle的报警日志,感觉挺有用的。
就按照上面的步骤开始了配置,环境是redhat5.3,oracle11.2,
当在创建外面的表的时候出现了ORA-01031: insufficient privileges 错误,
从网上查找原因有sqlnet.ora的文件错误。需要确定有SQLNET.AUTHENTICATION_SERVICES = (NONE)这个选项。
确定实例名和$ORACLE_SID一样,
是否有剩余空间,
环境是否配置错误,
AUTOMATIC_IPC 如果该参数为 ON,将强制使用"TWO_TASK" 连接 最好设置为OFF AUTOMATIC_IPC = OFF ,相关文件的权限检查相关文件的权限配置。
找到$TNS_ADMIN/*
$ cd $TNS_ADMIN
$ chmod 644 sqlnet.ora tnsnames.ora listener.ora
$ ls -l sqlnet.ora tnsnames.ora listener.ora
-rw-r--r-- 1 oracle dba 1628 Jul 12 15:25 listener.ora
-rw-r--r-- 1 oracle dba 586 Jun 1 12:07 sqlnet.ora
-rw-r--r-- 1 oracle dba 82274 Jul 12 15:23 tnsnames.ora
检查oracle 文件的权限:
% cd $ORACLE_HOME/bin
% ls -l oracle
权限应为:rwsr-s--x, or 6751.
如果不是:
% chmod 6751 oracle
一步步检查这些可能出现错误的地方,最后问题还是没有解决。
静下来,仔细想了一下,这个用户是刚刚创建的,只是赋予了connect,resource的权限。是不是没有创建表的权限?
于是赋予了create table 的权限
再次创建,总算成功了,所以我们在出现问题的时候要考虑是哪方面出现的问题。