我有一台机器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文件是否需要进行任何修改?
答案 0 :(得分:1)
为了能够以sysdba身份远程连接,您需要将该系统特权授予需要执行此操作的用户。
grant sysdba to name;
从现在开始,您可以使用sqlplus name/pwd@trial1 as sysdba
从任何计算机进行连接。该名称是您连接到的数据库中定义的用户名,无论您连接的是哪个OS帐户,还是连接的是哪台计算机,只要可以建立连接即可。
剩下的问题是:您是否需要在该数据库中以sysdba身份运行?除非你知道自己在做什么,否则不要这样做。有效地,您作为目录的所有者SYS工作。最轻微的错字可能会使您的数据库死亡成为一个渡渡鸟。
对于大多数人来说,即使是普通的dba帐户已经太多了。尽快创建一个常规帐户,为其提供所需的权限,并使用该权限进行工作。所需的权限是完成工作所需的最小权限(创建会话,创建表,创建过程等等(几乎肯定不是dba))