1.密码文件的作用
具有 sysdba/sysoper权限 远程登录时,需要用到密码文件 sqlplus / as sysdba //操作系统认证,用户密码即使不正确也可以登录,不安全操作系统认证(只要可以登录这个操作系统,我就不管你的用户名和密码) sqlnet.ora sqlnet.authentication_services=(all|none) none:关闭操作系统认证,使用密码文件认证 all:使用操作系统认证,关闭本机密码文件认证 关闭操作系统认证:#cd /u01/oracle/11g/network/admin/samples#vim sqlnet.ora sqlnet.authentication_services=(none)
密码文件认证:
remote_login_passwordfileSQL> show parameter remoteNAME TYPE VALUE------------------------------------ ----------- ------------------------------remote_dependencies_mode string TIMESTAMPremote_listener stringremote_login_passwordfile string EXCLUSIVE //该文件存放密码remote_os_authent boolean FALSEremote_os_roles boolean FALSEresult_cache_remote_expiration integer 0SQL>none:关闭密码文件认证,使用操作系统认证 exclive:使用独占的密码文件认证 shared:多个实例共享同一个密码文件 ---一般使用到集权环境中,不能用alter user 修改密码会出现问题 修改有sysdba 权限的用户密码都不能修改成功 关闭密码文件认证:
>>>alter system set remote_login_passwordfile=none scope=spfile;
sqlnet.authenication_services=(none) //多种组合 remote_login_passwordfile=none2.创建密码文件
oracle$> orapwd //创建密码文件[oracle@up12 ~]$ orapwdUsage: orapwd file=cd /u01/oracle/11g/dbs orapwdORACLE_SID //linux系统中 pwdORACLE_SID //windows系统中 $ORACLE_HOME/dbs/orapeORACLE_SID orapwd file=文件名 password=密码 entries=5(可以放的用户,一般不跟他,跟块的大小有关)entries= force= ignorecase= nosysdba= where file - name of password file (required), password - password for SYS will be prompted if not specified at command line, entries - maximum number of distinct DBA (optional), force - whether to overwrite existing file (optional), ignorecase - passwords are case-insensitive (optional), nosysdba - whether to shut out the SYSDBA logon (optional Database Vault only). There must be no spaces around the equal-to (=) character.
3.查看密码文件
select * from v$pwfile_users //查看密码文件SQL> select * from v$pwfile_users;USERNAME SYSDB SYSOP SYSAS //存放具有这三种权限的用户------------------------------ ----- ----- -----SYS TRUE TRUE FALSE4.密码文件的限制 限制用户的远程登录 orapwORACLE_SID5.密码文件丢失处理 只影响远程登录,不影响数据库运行