oracle数据库⼝令,oracle的⼝令资料
oracle的⼝令⽂件
Oracle中的⼝令⽂件存放着系统的特权⽤户(sysdba, sysoper)⽤户的⽤户名及⼝令,允许⽤户通过⼝令⽂件验证,在数据库未启动之前登陆从⽽启动数据库。如果没有⼝令⽂件,在数据库未启动之前就只能通过操作系统认证.
⼝令⽂件存放路径⼀般为:
WINDOWS下:%ORACLE_HOME%\a
UNIX/LINUX 下:$ORACLE_HOME/dbsdbs/orapw
oracle登录命令
如果访问本地的数据库的话,只需要当前⽤户是被加到操作系统的相应group即可。
Operating System Group
UNIX User Group
Windows User Group
OSDBA
dba
ORA_DBA
OSOPER
oper
ORA_OPER
Oracle验证过程:
⼀、设置由操作系统验证的⽤户
WINDOWS下改变%ORACLE_HOME%\NETWORK\a内容:SQLNET.AUTHENTICATION_SERVICES=(NTS)
UNIX下$ORACLE_HOME/network/a内容:SQLNET.AUTHENTICATION_SERVICES = (ALL)就使⽤了操作系统级别认证,就可以不⽤输⼊密码,甚⾄⽤户名都不⽤(sqlplus "/ as sysdba")就可以以sysdba的⾝份登陆系统(此时不通过⼝令⽂件认证).
如果Oracle数据库不允许远程SYSDBA/SYSOPER⾝份登录远程要使⽤操作系统的认证。则必须⽤安全的连接,这个是在管理⼯具NET8中设。很多普遍的协议,如:tcp/ip,decnet都是不安全的。将oracle启动参数REMOTE_LOGIN_PASSWORDFILE 设置为NONE,对于8.1.x或更⾼版本此参数的缺省值是EXCLUSIVE,在较早的Oracle 版本中缺省值是NONE⼆、设置使⽤⼝令⽂件验证    把a内修改:SQLNET.AUTHENTICATION_SERVICES=(NONE)
这个时候就需要⽤到pwd file了,如果这个时候还是任意输⼊密码,或者⽤"/" 来登陆就会出现错误
ORA-01031: insufficient privileges
ORA-01017: invalid username/password; logon denied
对于远程⽤户来说,将REMOTE_LOGIN_PASSWORDFILE 设置为EXCLUSIVE 或SHARED
EXCLUSIVE:表明只有⼀个例程可以使⽤⼝令⽂件,并且该⼝令⽂件包含除SYS 和INTERNAL以外的名称
SHARED: 表明可以有多个例程可以使⽤⼝令⽂件⼝令⽂件可以识别的⽤户只有SYS 和INTERNAL
三、重建修改⼝令⽂件
由于⼝令⽂件是⼆进制⽂件,⽽且密码都是加密的,所以从pwd file是很难看到sys的密码的。这个时候我们可以先重命名备份原pwd file 再⽤orapwd命令来重新创建pwd file,也可以加参数force=y直接覆盖原来的密码(否则如果已经存在密码时会报OPW-
00005:File with same name exists - please delete or rename) entries表⽰允许以SYSDBA/SYSOPER权限登录数据库的最⼤⽤户数,如果⽤户数超过这个值只能重建⼝令⽂件,增⼤entries。widows下输⼊
host orapwd file= passwod= entries=
Oracle提供了⼀个视图v$pwfile_users 来⽅便查看pwd file⾥⾯有哪些特权⽤户:
select * from v$pwfile_users;
也可以通过grantsysdbato和revokesysdbafrom把⼀个⽤户加⼊或移出⼝令⽂件