ORACLE Sysdba权限认证管理

系统 1771 0

1 概述

  在ORACLE中有一种特殊级别权限——sysdba权限, sysdba权限拥有ORACLE系统的最高权限,有打开数据库、关闭数据库、恢复数据库等高级权限, 我们在工程安装和日常维护中经常涉及到的sys用户就有sysdba权限。 sysdba是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在 。以sysdba身份登陆,装载数据库、打开数据库。只有数据库打开了,或者说整个数据库完全启动后,dba角色才有了存在的基础。

  Sysdba用户有两种认证方式:操作系统(OS)认证和密码文件认证,本文主要阐述的是sysdba权限不同认证方式的含义和配置说明。
     os认证的意思把登录数据库的用户和口令校验放在了操作系统一级。 如果以安装oracle时的用户登录os,那么此时在登录oracle数据库时不需要任何验证。  不论输入什么用户(哪怕这个用户在数据库中根本不存在),只要以sysdba权限连接数据库,都可以连接上,并且连接用户是sys,这样很方便,有时候,如果忘记了数据库的密码,而又想登录数据库,可以通过这种方式,前提是在数据库服务器上。

2 Sysdba登陆方式

  六种登陆方法(采用操作系统认证):

  1. sys/www as sysdba

  2. sys / as sysdba

  3. sys as sysdba

  4. / as sysdba

  5. sqlplus /as sysdba

  6. sqlplus /nolog

  前4种是在SQL*PLUS登陆框的用户名栏目中输入,后2种是DOS环境下直接输入。

  3 查看具有sysdba权限的用户

  以sys用户登陆oracle,执行select * from V_$PWFILE_USERS;可查询到如下结果:

         sql> select * from V_$PWFILE_USERS;
  USERNAME SYSDBA SYSOPER

  ------------------------------ ------ -------

  SYS TRUE TRUE
 
  (何为sysoper权限: SYSOPER特权也是oracle数据库的一种特殊权限。当用户具有该特权时,可以启动数据库,关闭数据库,但是不能建立数据库,也不能执行不完全恢复,这也是和SYSDBA的最大区别,另外,也不具有DBA角色的任何权限。 建立了Oracle数据库后,默认情况下只有SYS用户具有SYSOPER特权。需要注意的是,如果要以SYSOPER身份登陆,要求OS用户必须具有OSOPER角色(windows平台:ORA_OPER角色),当以SYSOPER身份登陆时,必须带有AS SYSOPER选项。)

  4 相关参数含义

  (Sysdba权限认证过程主要涉及ORACLE中的相关参数和配置文件说明如下

  4.1 SQLNET.AUTHENTICATION_SERVICES

  该参数在$ORACLE_HOME/NETWORK/ADMIN/sqlnet.ora目录下, 是ORACLE的网络配置文件,SQLNET.AUTHENTICATION_SERVICES参数可以通常设置为:

■ NONE 采用密码文件认证方式,需要输入用户名称和密码。

  ■ NTS 采用WINDOWS的安全认证方式(WINDOWS专用);

  ■ ALL 可以采用密码和操作系统认证方式。

  4.2 remote_login_passwordfile

  该参数可以设置为:

  ■ NONE 采用操作系统方式认证,不需要用户名称密码;

  ■ EXCLUSIVE 采用密码文件方式认证,且密码文件只能被一个实例使用;

  ■ SHARED 采用密码文件方式认证, 密码文件可以被多个实例使用;

  (注意:如果密码文件被多个实例使用,密码文件的名称为去掉sid后的文件名称如pwd.ora)

 5 各种认证的设置过程

  要由于windows和UNIX平台下的设置不尽相同,下面分别进行阐述:

  5.1 WINDOWS下的设置:

  5.1.1 操作系统认证设置步骤:

  ■目前登陆的操作系统用户属于ora_dba组,一般在安装ORACLE时候创建;

  ■ Sqlnet.ora文件中的设置,需要设置SQLNET.AUTHENTICATION_SERVICES= (NTS),表示通过NT进行认证;

  ■ ORACLE参数文件中:remote_login_passwordfile(可以设置为NONE,EXCLUSIVE,SHARED),操作系统认证时候,可以随便设置。

  5.1.2 通过密码文件进行认证设置步骤:

 ■ 密码文件的路径在$ORACLE_HOME/DATABASE/PWDSID.ORA,SID为实际的数据库SID;

  ■ Sqlnet.ora文件中的设置, SQLNET.AUTHENTICATION_SERVICES可以不用设置,可以注释掉,如果只想用密码认证需要设置为NONE;

  ■ ORACLE参数文件中参数:remote_login_passwordfile,必须设置为EXCLUSIVE,SHARED.

  5.2 UNIX下的认证

  5.2.1 通过操作系统认证设置:

  ■ 目前登陆的操作系统用户属于dba组,一般在安装ORACLE时候建立;

  ■ Sqlnet.ora文件可以设置为默认不管,但是不能设置为NONE。

  ■ ORACLE参数文件中:remote_login_passwordfile(可以设置未NONE,EXCLUSIVE,SHARED),操作系统认证时候,可以随便设置。

  5.2.2 通过密码文件进行认证:

  ■密码文件的路径在$ORACLE_HOME/dbs/orapwsid,SID为实际的数据库SID;

  ■ Sqlnet.ora文件不需要设置。

  ■ RACLE参数文件中参数:remote_login_passwordfile,必须设置为EXCLUSIVE,SHARED.)

  (注意:不管怎样如果remote_login_passwordfile设置为exclusive,shared数据库启动过程会查找密码文件,设置为none不需要)

  6 重建密码文件

  一般在sys用户的密码丢失或者想增加sysdba权限用户的个数的时候,需要重新创建密码文件。

   创建密码文件命令和解释

  orapwd file=filename password=sys用户密码 entries=entries.

  ■ File 为密码文件的名称,可以指定路径,也可以不指定路径,不指定路径的情况,windows下该密码文件的路径为:$ORACLE_HOME\DATABASE\pwdsid.ora,unix下的路径为:$ORACLE_HOME/dbs/orapwsid (sid为实例名),该参数必须输入;

  ■ Password 为该用户的密码,该参数必须输入;

  ■ Entries表示最大允许的超级用户的个数,该参数为可选参数,按自己的需要输入。

  Example:orapwd file=orapwora92 password=manager entries=3。

ORACLE Sysdba权限认证管理


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论