如何在其他服务器上连接数据库?

时间:2014-06-17 08:29:13

标签: oracle sqlplus tnsnames

我有一台机器A,上面有数据库服务器。 我有一台装有Oracle客户端的机器B.

我通过添加以下内容修改了机器B中的tnsnames.ora文件:

  TRIAL1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = machineName.example.com)(PORT = 1521)(QUEUESIZE=100))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = Trial1.world)
    )
  )

然而,我无法成功在机器B上运行命令sqlplus name/pwd@trial as sysdba。它会抛出一个错误,指出“权限不足”。机器A上的sqlnet.ora或tnsnames.ora文件是否需要进行任何修改?

1 个答案:

答案 0 :(得分:1)

为了能够以sysdba身份远程连接,您需要将该系统特权授予需要执行此操作的用户。

grant sysdba to name;

从现在开始,您可以使用sqlplus name/pwd@trial1 as sysdba从任何计算机进行连接。该名称是您连接到的数据库中定义的用户名,无论您连接的是哪个OS帐户,还是连接的是哪台计算机,只要可以建立连接即可。

剩下的问题是:您是否需要在该数据库中以sysdba身份运行?除非你知道自己在做什么,否则不要这样做。有效地,您作为目录的所有者SYS工作。最轻微的错字可能会使您的数据库死亡成为一个渡渡鸟。

对于大多数人来说,即使是普通的dba帐户已经太多了。尽快创建一个常规帐户,为其提供所需的权限,并使用该权限进行工作。所需的权限是完成工作所需的最小权限(创建会话,创建表,创建过程等等(几乎肯定不是dba))