Chinaunix首页 | 论坛 | 博客
  • 博客访问: 894739
  • 博文数量: 101
  • 博客积分: 2256
  • 博客等级: 大尉
  • 技术积分: 1481
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-19 17:52
文章存档

2017年(1)

2013年(2)

2012年(25)

2011年(73)

分类: Oracle

2011-05-23 10:42:36

   数据库用sysdba登录的验证有两种方式,一种是通过os认证,一种是通过密码
文件验证;登录方式有两种,一种是在数据库主机直接登录(用os认证的方式),
一种是通过网络远程登录;需要设置的参数有两个,一个是
SQLNET.AUTHENTICATION_SERVICES,一个是REMOTE_LOGIN_PASSWORDFILE。
 
  os认证:如果启用了os认证,以sysdba登录,那么我们只要用oracle软件的安装
用户就能登录:
sqlplus “/ as sysdba”。
 
  如果我们要禁用os认证,只利用密码文件登录,我们首先要有一个密码文件:
orapwd file=C:\oracle\product\9.2.0\db_1\database\PWDoralocal.ora
password=oracle;
  然后我们要把$ORACLE_HOME/network/admin/sqlnet.ora中设置:
SQLNET.AUTHENTICATION_SERVICES= none
  注意一下,密码文件只在数据库启动的时候加载进去,一旦加载进去,密码文件
就脱离了oracle管理,所以我们用orapwd新建密码文件后,里面指定的密码要在数
据重启后才能生效。
 
  至此,我们已经实现不用os认证(sqlplus “/ as sysdba”的方式登录不了)
。那么我们怎么限制网络方面利用sysdba远程登录呢?我们可以设置初始化文件中
的REMOTE_LOGIN_PASSWORDFILE=none。
注意,当REMOTE_LOGIN_PASSWORDFILE=none时,这个参数生效需要重启数据库,并
且,一旦启用这个参数,将使用操作系统认证,不使用口令文件。因此如果
REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= none这个
时候数据库是无法登录的。
 
(1)REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES=
none:
    oracle安装用户本地sqlplus “/ as sysdba”无法登录
  非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”无法
登录
  非oracle安装用户远程sqlplus
as sysdba”
无法登录
(2)REMOTE_LOGIN_PASSWORDFILE=exclusive且
SQLNET.AUTHENTICATION_SERVICES= none:
    oracle安装用户本地sqlplus “/ as sysdba”无法登录
  非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”能登

  非oracle安装用户远程sqlplus
  as sysdba”
能登录
(3)REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES=
(NTS):
    oracle安装用户本地sqlplus “/ as sysdba”能登录
  非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”无法
登录
  非oracle安装用户远程sqlplus
  as sysdba”
无法登录
(4)REMOTE_LOGIN_PASSWORDFILE=exclusive且
SQLNET.AUTHENTICATION_SERVICES= (NTS):
    oracle安装用户本地sqlplus “/ as sysdba”能登录
  非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”能登

  非oracle安装用户远程sqlplus
as sysdba”
阅读(1054) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~