oracle验证两种方式,操作系统验证,密码文件验证
启动密码文件验证
如果数据库登录方式是操作系统验证sys登录不需要用户名和密码就可以登录
c:\documents and settings\wwang>sqlplus dfsdljfsdljf/jsljfls as sysdba
sql*plus: release 11.2.0.1.0 production on星期一 6月 11 22:28:09 2012
copyright (c) 1982, 2010, oracle. all rights reserved.
连接到:
oracle database 11g enterprise edition release 11.2.0.1.0 - production
with the partitioning, olap, data mining and real application testing option
sql>
1. 创建口令验证文件
c:\documents and settings\wwang>orapwd file=d:\app\wwang\product\11.2.0\dbhome_1\database\pwdmdsp.ora entries=3
force=y password=oracle;
2. 修改初始化参数remote_login_passwordfile= exclusive
此参数有三个exclusive启用(单实例多用户)none表示禁用 shared启用(rac多实例单用户)
3. 修改sqlnet.ora中sqlnet.authentication_services = (none)
4. 再次使用sqlplus / as sysdba登录
c:\documents and settings\wwang>sqlplus / as sysdba
sql*plus: release 11.2.0.1.0 production on星期一 6月 11 22:48:56 2012
error:
ora-01031:权限不足
请输入用户名:
ora-01017:用户名/口令无效;登录被拒绝
登录不输入用户名密码登录不上
只用输入正确的用户名密码才能登录
c:\documents and settings\wwang>sqlplus sys/oracle; as sysdba
sql*plus: release 11.2.0.1.0 production on星期一 6月 11 22:52:32 2012
with the partitioning, olap, data mining and real application testing options
查看v$pwfile_users
sql> select * from v$pwfile_users;
username sysdba sysoper sysasm
-------------------- ---------- ---------- ----------
sys true true false
给用户赋予sysdba权限
sql> grant sysdba to imuse01;
授权成功。
imuse01 true false false
因为创建口令文件entries=3只能在给3个用户赋sysdba权限(以4个位单位)
5. 如果要禁用口令文件验证修改sqlnet.ora中sqlnet.authentication_services = (nts)
oracle 验证机制 -- 解决刚创建数据库后未赋权新建用户以dba登录问题
首先稍微解释下os认证:
oracle安装之后默认景象下是启用了os认证的,这里提到的os认证是指办事器端os认证。os认证的意思把登录数据库的用户和口令校验放在了操纵系同一级。若是以安装oracle时的用户登录os,那么此时在登录oracle数据库时不须要任何验证,如:
sql> connect /as sysdba
已连接。
sql> show user;
user is "sys"
sql> connect sys/aaa@dmt as sysdba
sql> connect sys/bbb as sysdba
sql> connect aaa/bbb as sysdba
username sysdba sysoper
------------------------------ ------ -------
sys true true
非论输入什么用户(哪怕这个用户如aaa在数据库中底子不存在),只要以sysdba权限连接数据库,都可以连接上,并且连接用户是sys,有时侯,若是忘记了数据库的密码,而又想登录数据库,可以经由过程这种验证格式,前提是在数据库办事器上;然而便利的同时也带来了一些安然隐患,于是很多人想脱离os认证,在win下只要把oracle_home/network/admin/sqlnet.ora中的sqlnet.authentication_services= (nts)中的nts改成none或者注释掉这句话(在前面加上#),就可以脱离os功能,要想以sys用户连上数据库必须输入正确的sys口令,如:
ora-01031: 权限不足
sql> connect sys/aaa as sysdba
ora-01017: 用户名/口令无效; 登录被拒绝
sql> connect sys/system as sysdba