美好的一天。如果我sqlplus user/oracle@db
我已成功连接数据库。
如果我sqlplus user/oracle@db as sysdba
我有错误ORA-01017。
但是在服务器上,此命令成功执行。
我的tnsnames.ora:
db =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.175)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
我也不能sqlplus /@db as sysdba
。在sqlplus user@db as sysdba
我输入密码后也出现此错误。在服务器上执行时没有错误。有什么问题?
带有Win2008,Oracle 12c的Oracle VirtualBox
答案 0 :(得分:1)
只有在获得许可的情况下才能使用as sysdba
。运行
GRANT SYSDBA TO user;
为了允许这样做。
远程计算机无法使用 sqlplus /@db as sysdba
- 这会将数据库打开到整个世界,每个人都可以在没有任何密码的情况下连接SYSDBA权限!
sqlplus /@db as sysdba
仅允许来自本地计算机,因为您已经通过身份验证(通常)作为OS-User“oracle”。
答案 1 :(得分:0)
最终可以像以前一样从远程计算机连接SYSDBA:指定密码,而不依赖于OS身份验证机制(操作系统auth不参与远程身份验证过程中这样做)。
只有,您必须激活密码文件机制(默认情况下禁用)。
为此,请将参数remote_login_passwordfile
的值更改为shared
或exclusive
。如果是shared
,它适用于在该计算机上运行的所有数据库,并且只能包含SYS
用户(如果它是exclusive
,则它可以包含任何用户,并且其范围是目标数据库)。
重要:在启用密码文件之后以及在他们被授予SYSDBA
或{之后},用户只会添加到密码文件中{1}}特权;即,预先存在的用户不会被自动添加(!),您必须重新授予sysoper
或SYSDBA
角色。
最后,此视图可让您查看密码文件的逻辑内容
SYSOPER
有关详细信息,请参阅Creating and Maintaining a Password File。