认证&密码文件

来源:互联网 发布:c语言大全 豆瓣 编辑:程序博客网 时间:2024/05/15 07:25

oracle 中使用两种方式认证登录,操作系统和密码文件

1、操作系统认证

操作系统认证分为本地和有权限的远程,如果能登录数据库所在服务器并且属于dba等特权用户,可以直接使用本地登录方式

比如sqlplus  / as sysdba登录数据库

2、密码文件认证

密码文件存放位置linux下在$ORACLE_HOME/dbs/orapw$ORACLE_SID,windows下在$ORACLE_HOME/database/下

使用sqlplus sys/sys@orcl as sysdba登录

3、什么时候使用什么方式认证

参数remote_login_passwordfile=none|exclusive|shared,其中exclusive是默认值使用独占方式,比如

SQL>  show parameter remote_lo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      EXCLUSIVE

 

另外一个参数是在$ORACLE_HOME/network/admn/sqlnet.ora中有一个SQLNET>AUTHENICATION_SERVICES=none|all|NTS

其中none是表示关闭操作系统认证,只能密码文件认证登录,all----使用于linux平台,nts是windows平台,如果不是none表示开启操作系统认证

关闭本机密码文件认证,但是并没有关闭远程密码文件认证,另外默认情况下只有windows平台下有设置这个值,linux下没有设置,比如在我的windows系统中的如下

SQLNET.AUTHENTICATION_SERVICES= (NTS)

相关试图:

SQL> select * from system_privilege_map where name like '%SYS%';

 PRIVILEGE NAME                                       PROPERTY
---------- ---------------------------------------- ----------
        -3 ALTER SYSTEM                                      0
        -4 AUDIT SYSTEM                                      0
       -83 SYSDBA                                            0
       -84 SYSOPER                                           0

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  FALSE

还有就是如果是本地登录sqlplus / as sysdba 和 sqlplus  sys/v as sysdba  (这里正确的错误的密码都可以登录)

4、如果设置3中的两个参数都none,这样sys就不能登录了,呵呵

 

 

0 0
原创粉丝点击