> 데이터 베이스 > MySQL 튜토리얼 > Oracle的口令文件

Oracle的口令文件

WBOY
풀어 주다: 2016-06-07 17:09:36
원래의
1194명이 탐색했습니다.

Oracle的口令文件的作用是存放所有以sysdba或者sysoper权限连接数据库的用户的口令,如果想以sysdba权限远程连接数据库,必须使用

Oracle的口令文件的作用是存放所有以sysdba或者sysoper权限连接数据库的用户的口令,如果想以sysdba权限远程连接数据库,必须使用口令文件,否则不能连上,由于sys用户在连接数据库时必须以sysdba or sysoper方式,也就是说sys用户要想连接数据库必须使用口令文件,因此我认为在数据库中存放sys用户的口令其实没有任何意义!使用口令文件的好处是即使数据库不处于open状态,依然可以通过口令文件验证来连接数据库。开始安装完oracle,没有给普通用户授予sysdba权限,口令文件中只存放了sys的口令,,如果之后把sysdba权限授予了普通用户,那么此时会把普通用户的口令从数据库中读到口令文件中保存下来,当然这时必须要求数据库处于open状态。

如果数据库的sysdba是通过数据库认证的,那么密码的信息就保存在这个文件中,如果不小心把sys的密码忘记了该怎么办呢?

第一步,将Oracle的sysdba登录修改为os认证:改sqlnet.ora(Windows的在:\oracle\product\10.2.0\db_1\NETWORK\ADMIN下)的SQLNET.AUTHENTICATION_SERVICES= (NTS)

这时候只要是属于ORA_DBA组的用户就可以不用密码而以sysdba登录数据库了,如sqlplus sys as sysdba,甚至是指定了一个错误的密码也可以登录sqlplus sys/aaaaa@orcl as sysdba;,因为这时候不检查密码,其实连是不是sys也不检查,只要指定了as sysdba就会以sys用户登录。

第二步,重新建立口令文件:orapwd file=D:\oracle\product\10.2.0\db_1\database\PWDorcl.ora password=test entries=5

注意file=后面不能空格。

第三步,将数据库登录改为数据库认证:改sqlnet.ora(Windows的在:\oracle\product\10.2.0\db_1\NETWORK\ADMIN下)的

SQLNET.AUTHENTICATION_SERVICES= (NONE)

这时候再以不正确的密码登录就会得到错误:ORA-01017: invalid username/password; logon denied

以第二步指定的密码则可以正确登录:sqlplus sys/test@orcl as sysdba;

登录后通过select * from v$pwfile_users;可以看到和口令文件相关的用户的信息。

上面第二步指定的文件是Oracle默认路径的默认文件名,如果想以别的文件名,这可以通过在注册表中添加信息来完成,如sid是orcl,可以通过添加一个字符串ora_orcl_pwfile将值设为文件的全路径值。在unix中则通过环境变量来设置。

linux

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿