gpt4 book ai didi

oracle - 如何使用加密密码验证 Oracle 登录

转载 作者:行者123 更新时间:2023-12-04 17:45:24 24 4
gpt4 key购买 nike

我们使用 KornShell (ksh) 脚本连接到 Oracle,该脚本使用 SQL*Plus 连接到 Oracle。 Oracle 数据库在同一个 Solaris 机器上。目前,我们将 Oracle 用户 ID 和密码(纯文本)存储在连接用户的 .ssh 文件夹中的一个文件中,具有 400 个权限位。

DBA 反对这种工作方式,理由是我们使用纯文本密码进行身份验证。当我们提出使用 base64 对密码进行编码时,他们仍然不喜欢这个想法,理由是我们仍然会在 shell 脚本中解密密码并通过网络传输密码。

现在,我想明白这一点-

  1. 我一直在阅读 Oracle 在传输密码字符串之前对其进行加密/哈希处理。虽然我现在找不到引用,但是,我仍然想确认我的理解。真的是这样吗?我们使用的是 11g r2,这会有什么不同吗?

  2. 我能否在不解密密码散列的情况下登录 SQL*Plus?例如,DBA 设置密码,将哈希传递给我。我把它放在一个文件中,并作为参数提供给 SQL*Plus。这种身份验证有什么方法可以工作吗?我知道有些工具确实允许这样做,如果您使用他们的工具进行编码,他们能够解密该值并将其用于身份验证。甲骨文呢?

伙计们帮帮我。

最佳答案

这样做已经有一段时间了(而且我没有方便的 linux box atm),但是你可以尝试这个来隐藏 ps 的细节:

echo password | sqlplus -s username@database @myscript.sql

注意 -s 是 sqlplus 的静默模式。我相信您也可以将密码放在一个“ protected ”的文件中(我宽松地使用该术语,但将位设置为 400)并 cat 文件,如上所示通过管道传输到 sqlplus。

编辑:如果 DBA 真的很关心密码,那么不使用密码怎么样?您可以尝试操作系统身份验证,但首先需要进行一些设置。例如:

--在Oracle中,创建新用户

create user ops$batch_user IDENTIFIED EXTERNALLY;
grant connect to ops$batch_user;

-- 在 Unix 中(以 batch_user 登录,或使用 su 命令)

export ORACLE_HOME=/app/oracle/product/11.2
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=DEV
sqlplus /

请注意,由于用户是由操作系统验证的,所以没有使用密码。这没有 Oracle 钱包 imo 复杂,但也不完美。

关于oracle - 如何使用加密密码验证 Oracle 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17807188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com