zoukankan      html  css  js  c++  java
  • 管理用户和PROFILE ——管理PROFILE——使用PROFILE管理口令

    当访问oracle数据库时,必须提供用户名和口令,然后才能连接数据库。为防止其他人员或黑客窃取用户口令,dba必须充分考虑用户口令的安全性,以防止黑客登录到数据库运行非法操作。对于大型数据库管理系统来说,数据库用户众多,并且不用用户担负不同的管理任务,为了有效利用服务器资源,还应该限制不用用户的资源占用。

    1.使用PROFILE管理口令

    当客户登录到oracle数据库时,需要提供用户名和口令。默认情况下用户名和口令是以明文方式通过网络传输。为了避免黑客通过网络窃取口令,应该在客户端将环境变量ora_encrypt_login设置为true。这样,oracle会自动为口令加密。

    1.1账户锁定

    账户锁定用于控制用户连续登录失败的最大次数,如果登录失败次数达到限制,那么oracle会自动冻结用户账户。

    • failed_login_attempts:用于指定连续登录的最大失败次数。
    • password_lock_time:用于指定账户被锁定的天数。

    例子:将账户usertemp01的连续登录失败次数控制在三次以内,账户锁定时间控制在10天之内:

    create profile  lock_account limit
    failed_login_attempts 3 password_lock_time 10;
    alter user usertemp01 profile lock_account;

    注意:如果没有指定pass_word_time 该选项,oracle会自动使用默认值(unlimited)在这种情况下需要dba手工解锁用户。

    conn sys/sys as sysdba
    alter user usertemp01 account unlock;

    1.2口令有效期和宽限期

    口令有效期是指用户账户口令的有效期使用时间,口令宽限期是指在用户账户口令到期之后的宽限使用时间。默认情况下,当建立用户并为其提供口令之后,其口令会一直生效。为了防止其他人和黑客破解用户账户口令,出于口令安全的考虑,dba用户应该强制普通用户定期改变口令。为了强制用户定期改变口令,oracle提供了一下两个选项:

    password_life_time:指定用户口令有效期(单位天)。

    password_grace_time:用于指定口令宽限期(单位天)。

    注意:为了强制用户定期改变口令,二者应该同时设置。

    例子:口令有限期10天,口令宽限期2天

    create profile password_life_time limit
    password_life_time 10 password_grace_time 2;
    alter user usertemp01 profile password_life_time;

    第十天登录时,会显示ora_28002:the password will expire within 2 days。如果第十天没有改变口令,那么在11,12天也会显示类似的警告信息。如果在12天没有改,在13天登录时,oracle会强制改变口令,否则不允许登录。

    1.3口令历史

    口令历史用于控制口令的可重用次数或者可重用时间。当使用了口令历史选项之后,oracle会将口令修改信息存放在数据字典中。这样当修改口令时,oracle会对新旧口令进行比较,以确保用户不会重用过去已经用过的口令。为了强制用户使用不同的口令,应该使用口令历史选项。口令历史有这两个选项:

    password_reuse_time:用于指定口令可重用的时间。

    password_reuse_max:用于指定重用口令之前口令需改变的次数。

    注意:当使用口令历史选项时,只能使用其中一个选项。当使用一个选项时,必须将另一个选项设置为unlimited 。

    例子:强制用户在口令终止10之内不能重用以前的口令:

    create profile password_history limit
    password_life_time 10 password_grace_time 2
    password_reuse_time 10 password_reuse_max unlimited;
    alter user usertemp01 profile password_history;

    在第十三天登录时,oracle会强制用户改变口令。但如果仍然采用过去的口令,则口令修改不能生效。

    1.4口令复杂度校验

    口令校验是指使用pl/sql函数确保用户口令的有效性,以强制用户使用复杂口令。通过使用口令校验函数,dba可以强制用户使用复杂口令。当使用口令校验函数时,既可以使用系统口令校验函数也可以使用自定义口令校验函数。在11g之前。系统口令校验函数名称为verify_function,在11g中系统口令校验函数名称为verify_function_11g,并且该函数定义了一下规则:

    • 口令不能少于8个字符
    • 口令不能和用户名相同
    • 口令不能与数据库名称相同
    • 口令至少包含一个字符和一个数字
    • 口令至少有3个字符与以前的口令不用
    • 口令不能使用字符串welcome1,database1,account1,user1234,password1,oracle123,computer1,abcdefg1,change_on_install,oracle.

    1.4.1使用系统口令校验函数verify_function_11g

    注意必须以sys用户登录建立口令校验函数。脚本utlkpwdmg.sql 用于建立系统口令校验函数 verify_function_11g当运行该脚本时,不仅会建立口令校验函数verify_function_11g,而且会修改default的口令管理选项。

    conn sys/sys as sysdba
    @?\rdbms\admin\utlpwdmg.sql

    1.4.2禁用口令校验函数

    为了禁用口令检验函数,可以将password_verify_function 选项设置为null

    conn sys/sys as sysdba
    alter profile password_history limit
    password_verify_function null;
    alter user usertemp01 identified by usertemp01;

  • 相关阅读:
    关于linux下如何使用svn 客户端
    vscode 如何格式化vue(template)html代码 , 保持标签属性不换行
    echarts的一些基础笔记
    Stompjs websocket vue
    GLSL反转矩阵inverse
    【入门向】使用 MetaHook Plus 绘制 HUD
    取文件MD5 WINAPI
    BAD APPLE C++控制台程序
    查看struct或class的内存布局
    让游戏以高性能GPU(独立显卡)运行
  • 原文地址:https://www.cnblogs.com/zhaojiedi1992/p/oracle11g_sql_0062.html
Copyright © 2011-2022 走看看