登录 sqlplus 为啥总是打印用户名?

Posted

技术标签:

【中文标题】登录 sqlplus 为啥总是打印用户名?【英文标题】:Upon logging into sqlplus why does it always print the username?登录 sqlplus 为什么总是打印用户名? 【发布时间】:2017-04-07 11:37:27 【问题描述】:

为什么登录sqlplus总是打印linux中的用户名?

$ sqlplus

SQL*Plus: Release 11.2.0.4.0 Production on Fri Apr 7 06:32:57 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Enter user-name: scott

Enter password:

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

USER is "SCOTT"

我不想打印“用户是”SCOTT“”。

一个线索是消息“USER is”,我可以看到它

/software/oracle/cli-11.02.00.04/sqlplus/mesg/sp2us.msg

 sqlplus/mesg/sp2us.msg:572:00291,0, "USER is \"%s\"\n"

我需要在某处更改任何设置吗?

【问题讨论】:

【参考方案1】:

这不是默认的 SQL*Plus 行为。因此,您的个人 login.sql 或全局 glogin.sql 文件中可能有一个 SHOW USER 命令(执行此操作)。

查看$ORACLE_HOME/sqlplus/admin 子目录中的glogin.sql 文件。

login.sql 可以在$SQLPATH 中的任何目录中,但 SQL*Plus 在当前目录中开始搜索。因此,幸运的是,该文件将位于某个合理的位置,例如您的客户$ORACLE_HOME

SQL*PLus 配置包含在文档中。 Find out more.

“在/upapps/oracle/dba/tools/login.sql ...有show user命令...所以是这个原因吗?”

是的。 SQL*Plus 每次连接时都会运行login.sql,例如使用SET SQLPROMPT 更改提示。将SCOTT> 作为提示可能比显示您刚刚连接的用户更有用。

"我可以覆盖 login.sql 和 glogin.sql,这样每次我连接到 sqlplus 时它都会执行我的 login.sql 和 glogin.sql?"

您不能覆盖glogin.sql,因为它们只有一个(g 代表“全局”)。但是login.sql 可以有多个版本。如上所述,SQL*Plus 开始搜索当前目录中的文件。因此,您需要在您具有写入权限的位置(例如$HOME/naren)创建一个login.sql 文件,然后始终从那里启动SQL*Plus。


" 即使我们从不同的文件夹运行,有什么方法可以实现这一点吗?"

如果您无法在启动 SQL*Plus 的地方编写文件,并且无法在可以编写文件的地方启动 SQL*Plus,这将成为政治问题而不是技术问题。您需要与管理您的 Oracle 环境的人员协商。

或者只是学会忍受它。这是一件相当微不足道的事情;我不敢相信我在这个话题上投入了这么多时间和精力 :) 所以如果show user 是你工作日中最大的烦恼,你应该算上你的祝福。

【讨论】:

我在 glogin.sql 中没有看到任何内容。它的所有行都以 -- 开头。我认为那些是 cmets @naren - login.sql 怎么样?该命令将是 show user(链接到您找到的 sp2us.msg),除非该功能以另一种方式复制。 @naren - 你有一个默认的glogin.sql 脚本,所以你需要在其他位置寻找login.sql。我已经为你扩展了我的答案。 @AlexPoole 谢谢,但我的主目录中没有看到任何 .login。 @APC,谢谢.. 是的,我在“/upapps/oracle/dba/tools/login.sql”中看到它,正如 AlexPoole 提到的那样,其中有 show user 命令,这就是原因?

以上是关于登录 sqlplus 为啥总是打印用户名?的主要内容,如果未能解决你的问题,请参考以下文章

为啥的telnet 交换机总是登录失败,用户名 密码都没有问题,怎么回事 见了鬼了。

sqlplus用户登录

为啥sys用正确的密码无法登陆sysdba,总是提醒sys必须是sysdba才可以登录,改密码也不成功

sqlplus用户登录

中国银行手机银行:为啥我打开中国银行手机银行,输入用户名和密码,总是提示信息 登录时身份信息出错?

oracle10g 我装好以后,登录sqlplus时用户名和密码在那里可以得到