DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1066|回复: 0
打印 上一主题 下一主题

[待整理] Oracle 11g R1中大小写敏感的密码

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-13 13:37:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
  密码大小写敏感是Oracle 11g数据库默认的一个新特性,数据库配置助手(DBCA)在创建数据库期间允许你将这个设置返回到11g以前的功能。



  SEC_CASE_SENSITIVE_LOGON初始化参数控制密码大小写是否敏感,如果现有应用程序与11g的认证过程冲突,你可以使用ALTER SYSTEM命令将这一功能关闭。

           
  1. SQL> SHOW PARAMETER SEC_CASE_SENSITIVE_LOGON

  2. NAME                                 TYPE        VALUE
  3. ------------------------------------ ----------- ------------------------------
  4. sec_case_sensitive_logon             boolean     TRUE
  5. SQL>


  6. SQL> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;

  7. System altered.

  8. SQL>
复制代码
           

  下面的代码说明了密码大小写敏感的功能,首先,将SEC_CASE_SENSITIVE_LOGON初始化参数设置为TRUE,然后创建一个新用户,其密码包含大小写字母。

           
  1. CONN / AS SYSDBA
  2. ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = TRUE;

  3. CREATE USER test2 IDENTIFIED BY Test2;
  4. GRANT CONNECT TO test2;
复制代码
           

  使用新创建的用户正确的连接字符和大小写错误的密码进行连接尝试,会看到大小写敏感功能起作用了。

           
  1. SQL> CONN test2/Test2
  2. Connected.
  3. SQL> CONN test2/test2
  4. ERROR:
  5. ORA-01017: invalid username/password; logon denied

  6. Warning: You are no longer connected to ORACLE.
  7. SQL>
复制代码
           

  将SEC_CASE_SENSITIVE_LOGON初始化参数设置为FALSE后就不区分密码大小写了。

           
  1. CONN / AS SYSDBA
  2. ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;

  3. SQL> CONN test2/Test2
  4. Connected.
  5. SQL> CONN test2/test2
  6. Connected.
  7. SQL>
复制代码
           

  需要记住的是,即使大小写敏感密码参数没有启用,在保存密码时也是区分了大小写的,以便以后在启用大小写敏感参数时有效,下面的代码先禁用了大小写敏感密码,然后创建了一个包含大小写字符密码的用户。

           
  1. CONN / AS SYSDBA
  2. ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;
  3. CREATE USER test3 IDENTIFIED BY Test3;
  4. GRANT CONNECT TO test3;
复制代码
           

  正如你预料之中的那样,登陆时不用考虑密码的大小写。

  如果我们启用了大小写敏感参数,认证过程就会立即启用大小写验证。

           
  1. CONN / AS SYSDBA
  2. ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = TRUE;

  3. SQL> CONN test3/Test3
  4. Connected.
  5. SQL> CONN test3/test3
  6. ERROR:
  7. ORA-01017: invalid username/password; logon denied


  8. Warning: You are no longer connected to ORACLE.
  9. SQL>
复制代码
           

  DBA_USERS视图包括了一列PASSWORD_VERSIONS,它表示密码是由哪个数据库版本创建的或最后修改的。

           
  1. SQL> SELECT username, password_versions FROM dba_users;

  2. USERNAME                       PASSWORD
  3. ------------------------------ --------
  4. TEST                           10G 11G
  5. SPATIAL_WFS_ADMIN_USR          10G 11G
  6. SPATIAL_CSW_ADMIN_USR          10G 11G
  7. APEX_PUBLIC_USER               10G 11G
  8. .
  9. .
  10. .
  11. SYSTEM                         10G 11G
  12. SYS                            10G 11G
  13. MGMT_VIEW                      10G 11G
  14. OUTLN                          10G 11G

  15. 32 rows selected.

  16. SQL>
复制代码
           

  用户如果是从Oracle 10g导入的,那么PASSWORD_VERSIONS的值就是“10G”,维护区分大小写的密码不依赖于SEC_CASE_SENSITIVE_LOGON参数设置。假设SEC_CASE_SENSITIVE_LOGON参数被设置为TRUE,密码立即变为大小写敏感。

  orapwd工具的ignorecase参数允许你控制在密码文件中的密码是否大小写敏感,它的默认值是“n”,即默认大小写敏感。如果特权用户(SYSDBA和SYSOPER)是从之前的数据库版本中导入的,它们的密码也会包括在密码文件中,这些用户将会保留大小写敏感的密码,直到密码被修改。

  要在密码文件中创建大小写敏感的密码,使用ingnorecase=y选项重新创建密码文件即可。
  $ orapwd pold=orapwDB11Gb entries=100 ignorecase=y password=mypassword
  数据库连接的密码也是大小写敏感的,下面列出了在不同数据库版本之间连接时需要注意的问题。

  ◆ 11g连接到11g:创建数据库连接时,密码必须与远程数据库用户的密码大小写一致。
   ◆11g连接到11g以前的数据库:创建数据流连接时用的密码大小写随意,因为远程数据库会忽略大小写的。
  ◆11g以前的数据库连接到11g:必须将远程用户的密码全部修改为大写,只有这样才能通过11g以前的数据库验证。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-1-12 06:18 , 耗时 0.099757 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表