Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一种简单的方法将windows用户环境变量拉入Oracle SQL以用于密码输入?_Oracle_Plsql_Environment Variables - Fatal编程技术网

是否有一种简单的方法将windows用户环境变量拉入Oracle SQL以用于密码输入?

是否有一种简单的方法将windows用户环境变量拉入Oracle SQL以用于密码输入?,oracle,plsql,environment-variables,Oracle,Plsql,Environment Variables,我正在考虑使用我的操作系统的环境变量作为Oracle在SQL查询中提取密码的源 ACCEPT TeamPassword PROMPT 'Enter your team password: '; 我想用能够定义TeamPassword={environment variables menu}中windows用户变量的lookup variable}的内容替换此代码。编写的这段代码需要一个提示,我正试图消除它,并且可以很容易地与via&TeamPassword一起使用。我希望能够以类似的方式使用此

我正在考虑使用我的操作系统的环境变量作为Oracle在SQL查询中提取密码的源

ACCEPT TeamPassword PROMPT 'Enter your team password: ';
我想用能够定义TeamPassword={environment variables menu}中windows用户变量的lookup variable}的内容替换此代码。编写的这段代码需要一个提示,我正试图消除它,并且可以很容易地与via&TeamPassword一起使用。我希望能够以类似的方式使用此代码的新版本


有人对如何实现这一点有什么聪明的想法吗?

您可以尝试以下任意一种包装器脚本

set TeamPassword = %1
echo %TeamPassword%
REM and then continue your script for connecting to database using the above variable


您可以尝试以下任意一种包装器脚本:

set TeamPassword = %1
echo %TeamPassword%
REM and then continue your script for connecting to database using the above variable

这是一个很好的例子,“仅仅因为你能,并不意味着你应该”。从安全角度来看,使用环境变量保存密码是一个非常糟糕的想法。可以使用系统监视工具审核、记录和查看环境变量,并向任何人公开密码。出于同样的原因,您不希望密码出现在sqlplus或任何正在运行的应用程序的命令行中。这很可能是您的代码现在有提示的原因-这样就可以输入密码,而无需任何人/任何其他人登录

您最好使用Oracle钱包(也称为安全密码存储)来保存您的凭据。我在这里写了一篇关于这一点的博文:,通过快速的谷歌搜索,还有很多其他可用的资源

使用钱包时,您可以不使用用户名和密码(它们都存储在钱包中)也无需提示即可登录。将钱包放在个人用户配置文件中,并在sqlnet.ora文件中使用环境变量指向钱包,如下所示:

WALLET_LOCATION=
  (SOURCE=
    (METHOD=file)
    (METHOD_DATA=
       (DIRECTORY="%USERPROFILE%\oracle\wallet")
    )
  )
这是一个很好的例子,“仅仅因为你能,并不意味着你应该”。从安全角度来看,使用环境变量保存密码是一个非常糟糕的想法。可以使用系统监视工具审核、记录和查看环境变量,并向任何人公开密码。出于同样的原因,您不希望密码出现在sqlplus或任何正在运行的应用程序的命令行中。这很可能是您的代码现在有提示的原因-这样就可以输入密码,而无需任何人/任何其他人登录

您最好使用Oracle钱包(也称为安全密码存储)来保存您的凭据。我在这里写了一篇关于这一点的博文:,通过快速的谷歌搜索,还有很多其他可用的资源

使用钱包时,您可以不使用用户名和密码(它们都存储在钱包中)也无需提示即可登录。将钱包放在个人用户配置文件中,并在sqlnet.ora文件中使用环境变量指向钱包,如下所示:

WALLET_LOCATION=
  (SOURCE=
    (METHOD=file)
    (METHOD_DATA=
       (DIRECTORY="%USERPROFILE%\oracle\wallet")
    )
  )

“团队密码”的整个概念似乎存在严重缺陷。团队中的每个人都知道密码?这是团队模式。我们为共享的用户空间共享一个用户(我们两个人)。这不是什么感性的东西。我们只收集其他来源的数据来回答业务问题。我不是这样设置的,“团队密码”的整个概念似乎有很大的缺陷。团队中的每个人都知道密码?这是团队模式。我们为共享的用户空间共享一个用户(我们两个人)。这不是什么感性的东西。我们只收集其他来源的数据来回答业务问题。我不是这样安排的。