ORA-01031关于ORACLE认证模式的那些事.doc
文本预览下载声明
DBA的思想天空 ORACLE专题 ORA-01031:关于ORACLE认证模式的那些事
17SEP
ORA-01031:关于ORACLE认证模式的那些事
时间: 2013-9-17 分类: ORACLE专题 作者: Dennis 536 次浏览
TAGS: ORA-01031, ORACLE认证方式, 数据库安全
最近有童鞋在群里问出现ORA-01031: 权限不足的情况,这里专门写一下关于ORA-01031错误的产生以及ORACLE的认证模式的那些事情,这是一个比较基础的报错,文章比较适合初学者阅读,如果你是老鸟,拍砖,飞过!ORACLE提供的认证模式主要有以下:1. 操作系统验证(匿名登录 不检验用户名和密码)conn / as sysdba既是操作系统认证使用该模式的用户必须是dba组,且只能用在本地 如果需要远程,则需要监听及tnsnames文件支持
在类UNIX系统中对于普通用户添加到oinstall dba组中即可如果只添加dba组也不可以对于root用户UNIX权限委派的第一步就是验证UID是否等于0即使root用户添加到oinstall dba组也不能登录
记住,原则上不要用oracle以外的用户去操作oracle,这是习惯的一种规则!2.密码文件认证密码文件存储的位置 $ORACLE_HOME/dbs/orapw$ORACLE_SID
注意:修改密码文件时只是修改了密码文件中记录的密码,并没有修改数据字典中的密码!如果是使用
SQL alter user username identified by password;
即改变了修改了密码文件中的密码 又修改数据字典中的sys密码
Oracle数据库究竟使用OS认证还是口令文件认证来进行管理取决于下面三个因素:1.SQLNET.ORA参数文件中的参数SQLNET.AUTHENTICATION_SERVICES设置2.PFILE(SPFILE)参数文件中的参数REMOTE_LOGIN_PASSWORDFILE设置3.口令文件orapw$SID(Linux) | PWD$SID.ora(Windows) 是否存在
关于SQLNET.AUTHENTICATION_SERVICES参数,在SQLNET.ORA(位于$ORACLE_HOME/network/admin目录中)文件中,取值有四种情况,当设置不同的参数时,验证权限也不同,需要根据实际情况进行配置,否则就有可能出现ORA-01031的情况linux下 有none、all、nts、 不设置或BEQ 四种情况下面分别测试:linux平台测试:把密码文件修改成123,如下:
[oracle@stream1 ~]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=123 force=y
测试数据库的tnsnames文件设置:
[oracle@stream1 admin]$ cat tnsnames.ora
stream =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = stream)
)
)pre
1、默认情况 没设置或者设置成BEQ
pre[oracle@dba admin]$ grep -v # sqlnet.ora
结果是空白,里面所有的参数都是关闭状态,来连接看看情况:
[oracle@stream1 admin]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Sep 16 11:59:30 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the
显示全部