§1 Oracle 11g 用户管理新功能关键字:Oracle、User、password、security读者级别:初级作者:赵元杰    概要:做过 Oracle 系统 DBA 的人员都具有这样的体会:每个 Oracle 版本在用户和口令的...
MDDATA                                             30-3 月 -10ANONYMOUS                                           30-3 月 -1...
§1.3 如何使用强口令(Strong Password)§1.3.1 理解 Oracle 11g 版本默认口令管理     Oracle11g 版本虽然提供了很强安全功能。但是,默认情况,Oracle11g 系统并没有启用强口令管理,比如:S...
SQL> col profile for a20SQL> col resource_name for a28SQL> select * from dba_profiles where resource_type=PASSWORD 2 order...
2.以         sysdba    修    改        profile   中   的   口   令   验   证   函    数(PASSWORD_VERIFY_FUNCTION)项:SQL>SQL> --然后设置 pr...
sec_case_sensitive_logon={true | false}当参数设置 为 TRUE 时表示启用口令大小写区别功能。§1.4.2 防止 Dos 攻击参数近年来,黑客开始重视数据库的攻击,对于 Oracle 系统来说,为防止 D...
§1.5 Oracle 11g 用户默认口令  Oracle 11g 版本在安全方面除了增加上面的功能外,也对使用默认口令的用户进行监控,还新增加数据字典 DBA_USERS_WITH_DEFPWD 用于记录使用默认口令的用户,下面简单的试验操...
Upcoming SlideShare
Loading in …5
×

1.oracle 11g 用户管理新功能

1,454 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,454
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

1.oracle 11g 用户管理新功能

  1. 1. §1 Oracle 11g 用户管理新功能关键字:Oracle、User、password、security读者级别:初级作者:赵元杰 概要:做过 Oracle 系统 DBA 的人员都具有这样的体会:每个 Oracle 版本在用户和口令的安全管理上都存在些差异,特别是 Oracle 11g 版本在管理用户功能上系统进行了较大的改动。比如:口令可区别大小写、不建议使用默认口令等。这里给出基于 Oracle 11g 版本的用户创建与口令等的几点安全知识介绍。§1.1 用户与方案(Schema) Oracle 系统中的用户是一个可登录到数据库的账户;而方案(schema)或模式是一组对象的集合名词(或某一用户下所有数据库对象的集合构成一个方案)。当Oracle 用户具有一定权限后,该用户可创建自己的对象,也可以不创建任何对象。当用户创建对象后,这个用户就自动成为方案(schema)或模式了。但是,你是否真正理解 Oracle 系统的 user 与 schema 的细微差异并不重要。这里讨论的用户与模式主要是让使用 Oracle 系统的人员了解某个用户是否有对象,用户有对象才能称为 schema,请看下面的语句的结果:SQL> create user "赵元杰" identified by zhao_ABC_#123 default tablespace users;用户已创建。SQL> select username,created from dba_users 2 where username NOT IN (select distinct owner from dba_objects);USERNAME CREATED------------------------------------------------------------ --------------赵元杰 17-2 月 -12MGMT_VIEW 30-3 月 -10NLS_SORT 17-2 月 -12SPATIAL_WFS_ADMIN_USR 30-3 月 -10XS$NULL 30-3 月 -10
  2. 2. MDDATA 30-3 月 -10ANONYMOUS 30-3 月 -10DIP 30-3 月 -10APEX_PUBLIC_USER 30-3 月 -10SPATIAL_CSW_ADMIN_USR 30-3 月 -10已选择 10 行。SQL> drop user "赵元杰" ;用户已删除。从上面语句获得的结果来看,刚创建的"赵元杰"只是一个普通 Oracle 账户(用户)而已,它并不是方案。§1.2 创建用户规范问题创建 Oracle 系统中的用户(账户)的名称比较随意;比如用户名称可以是普通的字符与数字串构词,这些字符串可带有双引号,比如:SQL>SQL> show userUSER 为 "SYS"SQL> create user "zhao" identified by zhao_ABC_#123 default tablespace users;用户已创建。SQL> drop user zhao;drop user zhao *第 1 行出现错误:ORA-01918: 用户 ZHAO 不存在SQL> drop user "zhao";用户已删除。从上面的样例来看,用户名称带有双引号,则删除时也带有双引号才行,值得提醒的是:如果你采用带有双引号的方法创建用户的话,那么要访问该用户的对象也要加双引号,作者在这里建议不要带有双引号。
  3. 3. §1.3 如何使用强口令(Strong Password)§1.3.1 理解 Oracle 11g 版本默认口令管理 Oracle11g 版本虽然提供了很强安全功能。但是,默认情况,Oracle11g 系统并没有启用强口令管理,比如:SQL> select * from v$version;BANNER----------------------------------------------------------------------------------------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionPL/SQL Release 11.2.0.1.0 - ProductionCORE 11.2.0.1.0 ProductionTNS for 64-bit Windows: Version 11.2.0.1.0 - ProductionNLSRTL Version 11.2.0.1.0 - Production--SQL> --使用保留字修改口令SQL> ALTER user scott identified by SESSION_CACHED_CURSORS ;用户已更改。SQL> ALTER user scott identified by RETURING ;用户已更改。SQL> --使用保留字给用户命名:SQL> CREATE user RETURING identified by RETURING ;用户已创建。从上面的试验结果来看,我们给出很简单的口令,Oracle 11g 页允许通过,显然,默认情况下,口令的管理并不严格。§1.3.2 如何启用 Oracle 11g 强口令管理Oracle11g 版本与之前版本类似,也提供了严谨的口令管理功能,但是,需要 DBA进行启用,主要的启用操作非常简单,详细下面的脚本:--登录到 sysdba
  4. 4. SQL> col profile for a20SQL> col resource_name for a28SQL> select * from dba_profiles where resource_type=PASSWORD 2 order by profile;PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT-------------------- ---------------------------- ------------------------------------------------------------------------------------------------DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITEDDEFAULT PASSWORD_LOCK_TIME PASSWORD 1DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULLDEFAULT PASSWORD_LIFE_TIME PASSWORD 180DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITEDDEFAULT PASSWORD_GRACE_TIME PASSWORD 7MONITORING_PROFILE PASSWORD_GRACE_TIME PASSWORD DEFAULTMONITORING_PROFILE PASSWORD_LOCK_TIME PASSWORD DEFAULTMONITORING_PROFILE PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULTMONITORING_PROFILE PASSWORD_REUSE_TIME PASSWORD DEFAULTMONITORING_PROFILE PASSWORD_LIFE_TIME PASSWORD DEFAULTMONITORING_PROFILE FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITEDMONITORING_PROFILE PASSWORD_REUSE_MAX PASSWORD DEFAULT已选择 14 行。 上面的查询结果中 PASSWORD_VERIFY_FUNCTION 项为 NULL,表明系统没有启用严格口令管理。需要 DBA 进行下面的启用操作:1.以 sysdba 运行 utlpwdmg.sql 脚本:SQL>SQL> show userUSER 为 "SYS"--SQL> @E:appdellproduct11.2.0dbhome_2RDBMSADMINutlpwdmg.sql函数已创建。配置文件已更改函数已创建。
  5. 5. 2.以 sysdba 修 改 profile 中 的 口 令 验 证 函 数(PASSWORD_VERIFY_FUNCTION)项:SQL>SQL> --然后设置 profile 使用该函数来检查密码即可SQL> ALTER PROFILE default Limit PASSWORD_VERIFY_FUNCTION verify_function_11G;配置文件已更改SQL> create user nls_sort identified by zhao_ABC 2 default tablespace USERS;create user nls_sort identified by zhao_ABC*第 1 行出现错误:ORA-28003: 指定口令的口令验证失败ORA-20008: Password must contain at least one digit, one characterSQL> CREATE user nls_sort identified by abc_123_ZHAO# 2 default tablespace USERS;用户已创建。3.随时可屏蔽 PASSWORD_VERIFY_FUNCTION 严格口令管理功能,你可使用:--停止密码检验函数:SQL>alter profile DEFAULT limit password_verify_function null;§1.4 Oracle 11g 安全性相关参数一般来说,Oracle 系统增加新功能对应相关的新参数,下面是 Oracle 11g 版本在安全方面的新增参数的使用说明。§1.4.1 sec_case_sensitive_logon 参数一直以来,Oracle 系统的口令不分大小写,但为了安全的增强,Oracle 11g 版本新增加sec_case_sensitive_logon 参数,以启用口令的大小区别功能。这个参数的语法如下:
  6. 6. sec_case_sensitive_logon={true | false}当参数设置 为 TRUE 时表示启用口令大小写区别功能。§1.4.2 防止 Dos 攻击参数近年来,黑客开始重视数据库的攻击,对于 Oracle 系统来说,为防止 DoS 攻击,新增加了 sec_protocol_error_further_action 和 sec_protocol_error_trace_action 参 数 ,sec_protocol_error_further_action 参数的语法为:sec_protocol_error_further_action={ CONTINUE | (DELAY,integer) | (DROP,integer) }CONTINUE : 这是默认值,就不是進行任何处理DROP : 去除使用者的登入权限DELAY : 延长使用者的再入登入的间隔时间,单位是秒另外,sec_protocol_error_trace_action 参数的语法如下:sec_protocol_error_trace_action={ NONE | TRACE | LOG | ALERT }NONE : 沒有动作TRACE : 默认值,写入 trace 中LOG : 写入 alert log 中ALERT : 由 dba 手动或 OEM 中设定 alert 信息§1.4.3 防止强力攻击参数为了防止任何可能的强力攻击时,可设置 sec_max_failed_login_attempts 参数,这个参数语法如下:sec_max_failed_login_attempts={10|1 to unlimited}当设置为 unlimited 时,攻击者可进行多次的试图登录。§1.4.4 sec_return_server_release_banner这个参数了设置是否回传 Oracle 版本的相关信息到连接的客户端,语法如下:可设定不回传 oracle 版本相关的信息:sec_return_server_release_banner={true | false}当参数设置为 TRUE 时,不回相关信息。
  7. 7. §1.5 Oracle 11g 用户默认口令 Oracle 11g 版本在安全方面除了增加上面的功能外,也对使用默认口令的用户进行监控,还新增加数据字典 DBA_USERS_WITH_DEFPWD 用于记录使用默认口令的用户,下面简单的试验操作:--登录到 sysdbaSQL> conn / as sysdba已连接。SQL> alter user scott identified by change_on_install;用户已更改。SQL> select * from dba_users_with_defpwd where username = SCOTT;USERNAME------------------------------SCOTT

×