ITPub博客

首页 > 数据库 > Oracle > 关于oracle密码验证

关于oracle密码验证

原创 Oracle 作者:woods_su 时间:2016-03-19 13:07:57 0 删除 编辑


先给两个比较好的帖子链接:

http://blog.itpub.net/29800581/viewspace-1267997/

http://blog.itpub.net/23135684/viewspace-757083/

 

下面是我的实验过程:


(一)关于创建口令文件


1、创建一个口令验证文件,并查看文件内容


 

2、创建一个用户swz,并给他赋予sysdba的权限

 

这时再看一下口令验证文件里的内容

 

 

3、也可以通过动态性能视图v$pwfile_users查看有哪些用户是拥有sysdba权限的:

 

 

4、如何确保sysdba角色用户的口令的大小写区分

user with sysdba tole should have case_sensitive password

 

mv orapworcl orapworcl2

orapwd file=orapworcl password=oracle ignorecase=N

 

(二)用户密码区分大小写

show parameter case;

alter system set sec_case_sensitive_logon=true;

 

(三)用户密码复杂度验证

@?/rdbms/admin/utlpwdmg.sql

执行完utlpwdmg.sql脚本之后就启用了Oracle数据库密码复杂度验证规则,规则如下:

1.对于非从低版本数据库导入的用户,密码都严格区分大小写。

2.密码长度不能小于8个字符,不能超过30个字符。

3.密码不能与用户名相同,也不能是用户名倒着拼写,或者后面追加1-100。

4.密码不能与服务器名称相同,也不能是服务器名称后面追加1-100。

5.密码不能过于简单,例如'welcome', 'database', 'account', 'user', 'password', 'oracle', 'computer', 'abcd'

6.密码不能是oracle,或者oracle后面追加1-100。

7.密码必须至少包含1个数字和1个字母。

8.新密码与老密码必须至少有3个字符不同。

9.密码的有效期是180天,延长期是7天。

10.如果一个用户连续输入密码10次都不正确,那么该用户将被锁定。

11.该策略设定之后,只在新创建用户和修改密码时开始验证,现有用户的密码可继续使用,为了安全起见,建议设置该策略后立即修改SYSTEM用户和所有业务系统用户的密码。

12.以上的规则对SYS用户无效(SYS是超级管理员用户,有单独文件保存密码,建议设置最为严格的密码)。

 

select profile,resource_name,limit from dba_profiles where profile='DEFAULT' and resource_name in ('PASSWORD_LIFE_TIME','PASSWORD_VERIFY_FUNCTION','PASSWORD_LOCK_TIME','PASSWORD_GRACE_TIME','PASSWORD_REUSE_MAX','PASSWORD_REUSE_TIME');


 

取消Oracle密码复杂度检查:
alter profile default limit password_verify_function null;

 

(四)关于验证方式

oracle有两种认证方式:操作系统认证(要求该用户属于本地DBA组,然后通过操作系统认证登录oracle,从而启动数据库),密码文件认证
oracle
使用哪种认证方式决定在于两个参数:
(1)remote_login_passwordfile=none|exclusive|shared

none:不使用密码文件认证。如果选择了这个值,就相当于屏蔽了密码文件的内容了。
exclusive:
要密码文件认证,自己独占使用(默认值)
shared:
要密码文件认证,不同实例dba用户可以共享密码文件

(2)
位于$ORACLE_HOME/network/admin/sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES=none|all|nts
none:
关闭操作系统认证,只能密码认证
all:
用于linux/unix平台,关闭本机密码文件认证,采用操作系统认证
nts:
用于windows平台

 

 

 

 

关闭操作系统验证,只能密码认证

找到$ORACLE_HOME/network/admin目录下的sqlnet.ora,在文件末尾加上:
SQLNET.AUTHENTICATION_SERVICES=NONE




 

这时就必须用sys用户名和密码才能登陆

sqlplus sys/oracle as sysdba

 

进入sqlnet.ora把SQLNET.AUTHENTICATION_SERVICES=none改成“=all”,存盘退出。
再次使用sqlplus "/as sysdba"登录的时候使用的就是本地认证了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30935525/viewspace-2059959/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-02-29

  • 博文量
    41
  • 访问量
    75758