pl/sql dev 远程连接windows server上的oracle数据库

时间:2021-02-03 22:00:24

1. 了解oracle

oracle在安装到windows上后,会有几个默认的用户:

  • sys
  • system
  • / 权限最高,无密码登录

用sqlplus登录的命令为:

sqlplus  username/password@dbname [as sysdba]

如果忘记了用户的密码,我们可以在oracle服务器所在机器上无密码登录修改:

sqlplus / as sysdba
sql> alter user sys identified by your_new_password;

我们也可以无密码登录用户 sys和system

2. 用pl/sql 远程登录oracle

pl/sql 对于oracle就相当于navicat对于mysql一样,是一个拥有GUI界面的oracle数据库操作软件,至于它是否能用来登录其它数据库,这里没有进行测试。

2.1 下载必要的软件到我们电脑

2.2 配置instantclient

  • 这免安装的,解压到指定路径就好,这里是 D:\App\instantclient_10_2
  • 在根目录下创建文件sqlnet.oratnsnames.ora
    关于这两个文件的介绍,可以点击文件名超链接,以参考官方文档。
    他们的内容为:

sqlnet.ora:

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

tnsnames.ora:

orcl = (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle_server_ip)(PORT = 1521))
)
(CONNECT_DATA = (SERVICE_NAME = dbname )
)
)
注: orcl可以改为任何你喜欢的名字

  • 现在安装好pl/sql,然后运行它,直接不登陆进入它的主界面(出现登录界面点cancel就好)。
  • Tools -> preferences, 然后完成如图配置:

pl/sql dev 远程连接windows server上的oracle数据库

好了,保存后重启pl/sql就可以进行远程登录了。

3.关于可能出现的错误

  • ORA-01031:insufficient privileges:

这个问题我遇到了,是由于使用了一个不存在的用户orcl进行登录,因为我用这个用户在sqlplus中是可以登录的,但是如我在第一节中说过那样,如果用sqlplus登录的是本地的oracle数据库,一个不存在的账户也是可以登录的:

sqlplus a as sysdba
这句代码是可以登录的,密码可以随便输入,但是账户a是不存在的,后期我会细节去了解原因。

因此,如果你遇到这个错误,请首先检查是否在第二步出现配置错误,然后再检查你所登录的用户是否真的存在,怎么检查呢?我是首次接触oracle,当时先以orcl/orcl登录出现该错误,后来改用sys/oracle登录出现了后面的错误,于是我打算本地登录去更改sys的密码:

sqlplus sys as sysdba
SQL>alter user sys identified by abc;

然后我再去pl/sql登录就可以了,然后我想是不是orcl的密码也记错了呢,于是就又去改orcl的密码,执行上面第二句提示”无此用户”,于是我恍然了。

  • ORA-01017: invalid username/password; logon denied
    这就是密码错误了。

关于其它的错误请百度/谷歌。