每日一记:通过sqlplus不暴露密码连接数据库

相信,很多DBA朋友平时都习惯了sqlplus /nolog或sqlplus / as sysdba或sqlplus system/******等方式登陆db,这些方式很容易暴露db的口令密码,要是连接本机的db环境还好,sqlplus /nolog进入sqlplus后用“conn 用户名”可以隐藏口令密码登陆,如果是登陆远程机器,要怎么写连接信息呢?

相信很多人是说,直接写用户名不写密码,等sqlplus提示输入密码就可以了呀!

如:

C:\Users\******>sqlplus [email protected]/orcl

SQL*Plus: Release 12.2.0.1.0 Production on 星期四 4月 18 10:22:05 2019

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

ERROR:
ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME


请输入用户名:

看到了吗?报错了,除非你知道怎么写,否则一定很疑惑:为什么加上去掉密码就不行了呢?

一般这样是可以的:

C:\Users\******>sqlplus system/[email protected]/orcl

SQL*Plus: Release 12.2.0.1.0 Production on 星期四 4月 18 10:25:52 2019

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


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

我们看一下sqlplus的帮助信息:

C:\Users\******>sqlplus --help

SQL*Plus: Release 12.2.0.1.0 Production

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

使用 SQL*Plus 执行 SQL, PL/SQL 和 SQL*Plus 语句。

用法 1: sqlplus -H | -V

    -H             显示 SQL*Plus 版本和
                   用法帮助。
    -V             显示 SQL*Plus 版本。

用法 2: sqlplus [ [

可以看到,connect_identifier是一个整体,那么我们试试把它用引号引起来试试:

单引号:

C:\Users\******>sqlplus system@'192.168.100.130/orcl'

SQL*Plus: Release 12.2.0.1.0 Production on 星期四 4月 18 10:29:46 2019

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

输入口令:

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

嘿嘿,可以!

双引号:

C:\Users\******>sqlplus system@"192.168.100.130/orcl"

SQL*Plus: Release 12.2.0.1.0 Production on 星期四 4月 18 10:30:29 2019

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

ERROR:
ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME


请输入用户名:  system
输入口令:
ERROR:
ORA-12560: TNS: 协议适配器错误


请输入用户名:

哈哈,不行!

另外一种方式:

C:\Users\******>sqlplus /nolog

SQL*Plus: Release 12.2.0.1.0 Production on 星期四 4月 18 10:32:28 2019

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

SQL> conn system@'192.168.100.130/orcl'
输入口令:
已连接。
SQL>

也是可以的!

所以,如果不想暴露密码,可以不写密码,但要把“服务器端口服务名等信息”用英文状态下的单引号引起来

你可能感兴趣的:(Oracle,DBA成长之路)