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 下载必要的软件到我们电脑
- instantclient的官方下载地址。该软件为pl/sql连接oracle的中间件,我们主要的配置就在它, 版本多选择10.2或11.2。
- pl/sql developer。一个sql客户端。
2.2 配置instantclient
- 这免安装的,解压到指定路径就好,这里是 D:\App\instantclient_10_2
- 在根目录下创建文件sqlnet.ora和tnsnames.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就可以进行远程登录了。
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
这就是密码错误了。
关于其它的错误请百度/谷歌。