Oracle11g密码区分大小写导致database link无法连接

http://f.dataguru.cn/thread-128013-1-1.html


Oracle11g的密码默认是区分大小写的,该特性通过初始化参数sec_case_sensitive_logon控制,默认TRUE表示区分大小写。但是Oracle11g之前的版本密码都是不区分大小写的,所以在Oracle10g等以前版本创建到Oracle11g的database link时,可能会碰到以下问题:

10g> create database link oracle11g
2 connect to ning identified by ning
3 using ’11g’;

Database link created.

10g> select * from [email protected];
select * from [email protected]
*
ERROR at line 1:
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from ORACLE11G

密码肯定是正确的

10g> conn ning/[email protected];
Connected.

11g>

出现这个问题,应该是在10g中创建database link的时候密码是以全部大写的方式使用的,但是11g中的用户密码实际上是小写的。在以前版本中由于不区分大小写,所以没有问题。到了11g问题就出现了,密码不对^_^

解决办法

1.在创建database link是将用户名和密码都以双引号引起来,这样密码就是安装输入字符使用的,不会转换成大写

10g> create database link oracle11g2
2 connect to “ning” identified by “ning”
3 using ’11g’;

Database link created.

10g> select * from [email protected];

BANNER
——————————————————————————–
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 – Production
PL/SQL Release 11.1.0.6.0 – Production
CORE 11.1.0.6.0 Production
TNS for Linux: Version 11.1.0.6.0 – Production
NLSRTL Version 11.1.0.6.0 – Production

2.停用Oracle11g区分密码大小写的特性,但是不推荐

11g>alter system set sec_case_sensitive_logon=false;

System altered

10g> select * from [email protected];

BANNER
——————————————————————————–
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 – Production
PL/SQL Release 11.1.0.6.0 – Production
CORE 11.1.0.6.0 Production
TNS for Linux: Version 11.1.0.6.0 – Production
NLSRTL Version 11.1.0.6.0 – Production

时间: 2024-08-06 12:22:12

Oracle11g密码区分大小写导致database link无法连接的相关文章

Oracle11g 密码延迟认证导致library cache lock的情况分析

在 Oracle 11g 中,为了提升安全性,Oracle 引入了『密码延迟验证』的新特性.这个特性的作用是,如果用户输入了错误的密码尝试登录,那么随着登录错误次数的增加,每次登录前验证的时间也会增加,以此减缓可能对于数据库重复的口令尝试攻击. 但是对于正常的系统,由于口令的更改,可能存在某些被遗漏的客户端,不断重复尝试,从而引起数据库内部长时间的 Library Cache Lock的等待,这种情形非常常见. 如果遇到这一类问题,可以通过Event 28401关闭这个特性,从而消除此类影响,以

Oracle查看和删除database link

1.查看 select * from dba_db_links; 2.删除 drop database link 连接名称;   备注:sys 用户不能删除其他用户的 db links 忘记Oracle数据库管理员密码的解决办法 如何不用密码以sysdba的身份登陆到oracle? 输入下面命令,进去了 sqlplus / as sysdba 修改密码语句: alter user system identified by system Oracle11g数据库修改sys和system用户的密码和

ora-01017 和oracle database link

DB link ,创建完了后总是报密码错误.我感到奇怪.明明密码是对的.怎么可能错误呢. SQL> create public database link kk40 connect to khfx identified by xffsf3 using '1004' SQL> select * from ; select * from ORA-01017: invalid username/password; logon deniedORA-02063: 紧接着 line (起自 KK40) S

IT忍者神龟之Database Link详解

-创建 CREATE public database link test_link CONNECT TO scott IDENTIFIED BY tiger using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = LEE) ) )'; --使用 select ename from [emai

Oracle Database Link 的创建和使用小见

假设:需要从数据库db_a通过db_link连接到db_b查询数据库b的部分相关信息 前提条件: 数据库a账户需要有创建dblink的权限,如果没有可以使用dba账户赋权限 grant CREATE PUBLIC DATABASE LINK to  username;grant DROP PUBLIC DATABASE LINK to usenrame; 数据库b账号需要有连接的权限,一般账户都有这个权限 以下是创建的语句: 基本语法: CREATE [SHARED][PUBLIC] datab

oracle database link使用说明

作用:将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象 简易语法: CREATE [PUBLIC] DATABASE LINK dblink CONNECT TO user IDENTIFIED BY password USING 'connect_string';  DROP [PUBLIC] DATABASE LINK dblink; 注意:你必须有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK

建立dblink(database link)

database linke是建立一个数据库到另一个数据库的路径的对象,通过database link可以允许查询远程表,我理解可以算作一种分布式数据库的用法. database link是单向连接,既然它是一种对象,那自然可以在xxx_objects表中查询到相关的信息.建立database link前需要明确几个事情: 1.确认从建立方的server可以访问远程数据库. 2.需要在建立方的tnsnames中配置远程数据库连接串. 3.只有在服务端配置的连接才能在dblink中使用,如果仅是在

密码过期导致的用户锁定问题

第一章  数据安全:巧妙解决由密码过期导致的用户锁定问题  数据库安全问题一直是人们关注的焦点.oracle数据库使用了多种手段来保证数据库的安全,如密码,角色,权限等等.今天我们来讨论一下关于oracle的密码问题.然而,我在这里要讲的并不是oracle的安全密码机制有多么的强大,恰恰相反,我教大家的是,在oracle密码过期时我们如何在不修改密码的情况下,使密码重新有效. 1案例引入 在介绍前我们先来说一个案例,某客户数据库做安全加固时,针对profile修改了部分password的安全机制

oracle 创建database link

有时候需要在两个数据库的表join 查询 这时候要用到 database link . database link 的作用就是搭建数据库和数据库的连接. 1.先看如何使用 PL\SQL  工具创建. 找到database links  右键  新建 填名称,  这里的用户名是远程数据库的登录名 数据库就是本地文件 D:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora 的 也可以在数据库这里直接填 (DESCRIPTION =(A