Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3127942
  • 博文数量: 206
  • 博客积分: 3409
  • 博客等级: 中校
  • 技术积分: 4066
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-24 10:21
个人简介

● ITPUB名人堂嘉宾 ● ChinaUnix社区博客专家 ● ChinaUnix社区Oracle板块版主 ● 优酷网认证音乐牛人:EricGuitar ● SDOUG 核心成员 ●E-mail:gaoqiangdba@163.com

文章分类

全部博文(206)

文章存档

2021年(11)

2020年(7)

2019年(7)

2016年(5)

2015年(36)

2014年(23)

2013年(15)

2012年(23)

2011年(61)

2010年(18)

分类: Oracle

2014-05-04 10:54:57

  

现象:

客户应用的开发人员反映使用plsql developer登录test用户的时候报错:ORA-01017:invalid username/password; logon denied,使用system和sys在pl/sql developer登录就没问题。


在服务器本机测试:

$ sqlplus /nolog


SQL*Plus: Release 10.2.0.4.0 - Production on Thu Apr 24 10:30:50 2014


Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


SQL> conn test/test
ERROR:
ORA-01017: invalid username/password; logon denied




SQL> show parameter remote_login_passwordfile


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      EXCLUSIVE   ------------------此处为Oracle默认的值,没问题。



尝试:




$ export ORACLE_SID=test
$ sqlplus / as sysdba


SQL*Plus: Release 10.2.0.4.0 - Production on Thu Apr 24 11:28:23 2014


Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.




Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> select open_mode from v$database;


OPEN_MODE
----------
READ WRITE


其中还怀疑是因为开发人员未给用户赋权限:

SQL> GRANT CREATE SESSION TO test;


Grant succeeded.


SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
$ sqlplus /nolog


SQL*Plus: Release 10.2.0.4.0 - Production on Thu Apr 24 11:28:48 2014


Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


SQL> conn test/test
ERROR:
ORA-01017: invalid username/password; logon denied   ------------看来不是权限问题。




SQL> conn / as sysdba
Connected.
SQL> show parameter service;


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      test


SQL> alter user test identified by test;


User altered.

该方案成功!


SQL> conn test/test
Connected.


最后找开发人员获取建用户的脚本,发现确实是创建用户时设定密码有问题:



CREATE USER test
  IDENTIFIED BY VALUES 'test' -----------------------此行导致的,一般使用 identified by 直接加密码即可!!,
  DEFAULT TABLESPACE  TEST_DATA                      identied by values适用于加密方式指定密码的,一般为
  TEMPORARY TABLESPACE TEMP                          一串16禁止无可读性的字符,如果明文指定密码的话,使用
  PROFILE DEFAULT                                    identied by password即可。
  ACCOUNT UNLOCK; 
  -- 3 Roles for test 
  GRANT CONNECT TO test;
  GRANT DBA TO test;
  GRANT RESOURCE TO test;
  ALTER USER test DEFAULT ROLE ALL;
  -- 2 System Privileges for test
  GRANT CREATE ANY TABLE TO test;
  GRANT UNLIMITED TABLESPACE TO test;

阅读(30240) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~