Oracle系统如何实现其授权机制

2025-10-26 19:51:52

1、    一、SYS用户验证

      SYS用户拥有数据库的完全控制权,对其验证显得至关重要。由于进行验证时数据库还不可用,ORACLE采用两种方式来验证SYSDBA用户:操作系统验证和口令文件验证。

1. 操作系统验证

对于在安装Oracle的本机上使用Oracle的情况,Oracle可以将用户验证交给操作系统,只要登录操作系统的用户在DBA组里,就有SYS用户的权限,可以修改 $ORACLE_HOME/dbs/sqlnet.ora,加入如下行:

      SQLNET.AUTHENTICATION_SERVICES= (NTS)

操作系统验证具有最高优先级,当设置为他时,口令文件验证不起作用

2、2. 口令文件验证

要使用口令文件验证,首先得禁用操作系统验证,修改 $ORACLE_HOME/network/admin/sqlnet.ora,加入如下行(这里将$ORACLE_HOME转化为绝对路径):

      SQLNET.AUTHENTICATION_SERVICES= (NONE)

 其次是设置口令验证配置参数:remote_login_passwordfile,他可以有几个值,其含义如下

      -- none  不使用口令验证

      -- exclusive 仅允许一个实例使用该口令文件

      --shared 多个实例可以共用一个口令文件

这里将参数设置为独占:

      alter system set remote_login_passwordfile=exclusive scope=spfile;

      shutdown immediate 

使用口令实用程序生成口令文件

      orapwd file= $ORACLE_HOME/database/pwdora10g.ora  password=oracle

     

此时尝试以不同方式登录数据库

      sqlplus / as sysdba-----------------权限不足

      sqlplus sys/oracle as sysdba---------------使用口令验证方式,登录成功

3、普通用户验证

           之前讲了SYS用户的验证,那么普通用户如何验证?

           SYS用户是在数据库还没启动时登录数据库进行启动操作,而普通用户是在数据库启动后操作不同方案下的对象。

     所以普通用户采用的是数据字典的验证方式:

    

            select username,password from dba_users;

     可以看到所有用户和密码

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢