我的不是NONE SQL> show parameter REMOTE_LOGIN_PASSWORDFILE;NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ remote_login_passwordfile string EXCLUSIVE SQL>
system 莫认是没有sysdba权限的. 只有dba权限
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production With the Partitioning, OLAP and Data Mining optionsSQL> conn system/change_on_install@work as dba SP2-0306: 选项无效。 用法: CONN[ECT] [logon] [AS {SYSDBA|SYSOPER}] 其中 <logon> ::= <username>[/<password>][@<connect_identifier>] | / SQL>
如果是有没sysdba权限,为什么在服务器端可以使用system/change_on_install@work as sysdba来登录呢?
sys 用户默认没有,可能你后面赋予了他sysdba的权限.select * from v$PWFILE_USERS; 察看哪些用户被授予 dba权限
show parameter REMOTE_LOGIN_PASSWORDFILE
先给system sysdba的权限,grant sysdba to system;
然后开启REMOTE_LOGIN_PASSWORDFILE的设置为exclusive。
看看这个参数的值是什么
值为NONE的时候代表必须使用操作系统验证才能以DBA身份登录
可以通过以下命令设置为EXCLUSIVE或者SHAREDalter system set REMOTE_LOGIN_PASSWORDFILE=SHARED scope=spfile;
完了重启数据库
再从客户端进行连接试试
如果system没有sysdba的权限那么在服务端上直接登录怎么可以啊?
你的system用户肯定是有sysdba权限的,问题是你现在在客户端无法以sysdba身份登录啊。你先用show parameter REMOTE_LOGIN_PASSWORDFILE,看一下你的REMOTE_LOGIN_PASSWORDFILE这个参数值是什么,如果是none的话是不能用客户端以sysdba身份登录的。那就要修改参数的值并重启数据库生效。
SQL> show parameter REMOTE_LOGIN_PASSWORDFILE;NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string EXCLUSIVE
SQL>
system 莫认是没有sysdba权限的.
只有dba权限
With the Partitioning, OLAP and Data Mining optionsSQL> conn system/change_on_install@work as dba
SP2-0306: 选项无效。
用法: CONN[ECT] [logon] [AS {SYSDBA|SYSOPER}]
其中 <logon> ::= <username>[/<password>][@<connect_identifier>] | /
SQL>
察看哪些用户被授予 dba权限
只能AS SYSDBA或者AS SYSOPER
没有AS DBA这个写法的
Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别楼主看看上面那篇文章