隐藏oracle数据库,如何隐藏Oracle密码

当你有两个或两个以上Oracle数据库时,可能要求你指出你想登陆的数据库名称。如果你使用的SQL*Plus,你需要在同一数据库里(db1是数据库名)说明三个登录参量(用户名、密码和db_name),如下:

>> sqlplus scott/tiger@db1

这存在着安全风险。为了隐藏密码(只显示星号通配符),你可以输入以下指令:

>>sqlplus scott@db1

输入以上指令后按ENTER键,要求你输入密码。输入密码后,星号通配符(*)就代替了以前你输入的字符,这就是Oracleto通常处理密码的方法。事实上,你是将密码隐藏了……

我已经在Oracle8企业修订版8.0.5.0.0和Oracle Server 7.3.4.0.0版本中测试了这一技巧。

读者反馈:

Michael P.:它在8.0.5.以上的版本上运行得很好。但是SQL*PLUS在其他脚本里运行得怎样呢?在这种情况下,我该怎样隐藏密码呢?

Hing M:要从OS脚本中调用SQL*Plus,目前我发现隐藏密码的唯一方法就是不使用密码,而是连接internal.。很显然这一方法有局限性,因为你必须从当地服务器开始连接。这种方法出现的问题是输出和输出不接受userid=internal。那么这种情况下有没有隐藏密码的其他窍门呢?

Phillip D:我多年都在使用hideargs覆盖隐藏指令密码。要了解更多的信息,你可以查看:

我经常使用OS配置验证递规背景,而不是将密码保留在脚本里面。

作者:是的,SQL*Plus在脚本里和密码是和密码一起发出的指令。我一点也不知道如何在脚本里面隐藏密码。然而,一个工作区(如我们在Unix的环境下进行操作)就是在脚本上对相关的用户发出指令。

Denis D:假定是Unix环境,使用SQL*Plus还可以用下面的方法:

sqlplus /nolog <

connect usr/pass@somewhere

rem put any commands inline:

select sysdate from dual;

@my_batch_program

quit

EOF

以上操作针对Oracle8 用户。对于旧版本,可以进行如下操作:

sqlplus  <

usr/pass@somewhere

rem put any commands inline:

select sysdate from dual;

@my_batch_program

quit

EOF

以上操作适用于所有Unix外壳程序。

Geoff H.:我的确喜欢Philip D的指令,但是我却不了解hidearg覆盖。我认为你隐藏密码的方法可以再细分为两种:第一种,执行’ps -ef ’观察这一过程,建议你的用户登录Unix服务器,因此为什么在Oracle帐户里不能简单地在外面识别用户身份呢?如果运行得不够好,而且他们希望能连接到更远的地方,那么就在Unix包上使用Batch用户帐号登录。如果你希望限制用户登录脚本的权限并想隐藏密码,为什么不允许用户登录SUDO,登录超级用户执行脚本呢?这些方法都能运行,整个都取决于你怎样安装。希望这些建议能对你们有所帮助。

Witold I.:我有时用另一诀窍隐藏密码,即利用我设定的环境变量。在脚本中可设定环境变量选择用户。如:

set the_password=mypass

sqlplus user1/%the_password%@mydb

事实上,我常在TKPROF脚本里面使用这种方法,但是我用sqlplus也测试了,这种方法也很管用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值