困扰我的是,为什么随便一个密码都能连接到数据库,请高人解惑。
我在浏览器里输入http://localhost:5500/em回车,打开oem登陆界面,输入用户名sys,密码yuzheng(我安装的时候数据库名是yu,密码是yuzheng),能正常登陆,随意更改密码不能登陆。
我用connect sys/yuzheng as sysdba 连接到数据库,没有空闲例程的提示。因为yuzheng是我的数据库的正确密码。
问题是,当我在命令行输入sqlplus/nolog连接到Oracle以后,然后用connect sys/随意一个密码 as sysdba 然后回车,都能连接到数据库,提示是一个空闲例程,在这个例程里,能查询任何其他用户的数据资料(表或者其他资料)。
为什么在命令行下,connect sys/password as sysdba ,随便一个密码,都能连接到数据库啊,虽然提示是空闲例程,但是能够查询其他用户的数据,这不是很不安全吗?请高手指教!感谢!

解决方案 »

  1.   

    sqlplus/nolog  这样是已经连接到数据库了啊,如果在这样的情况下你再那样连接他会忽视那样的命令,我的情况也类似,呵呵
      

  2.   

    你这个登录用的是OS 身份验证,所以可以任意的密码都可以登录。
    如果你所用的是密码文件验证,是不可以的。
    设置初始化参数REMOTE_LOGIN_PASSWORDFILE:在Oracle数据库实例的初始化参数文件中,此参数控制着密码文件的使用及其状态。它可以有以下几个选项:NONE:指示Oracle系统不使用密码文件,特权用户的登录通过操作系统进行身份验证;EXCLUSIVE:指示只有一个数据库实例可以使用此密码文件。只有在此设置下的密码文件可以包含有除INTERNAL/SYS以外的用户信息,即允许将系统权限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用户。SHARED:指示可有多个数据库实例可以使用此密码文件。在此设置下只有INTERNAL/SYS帐号能被密码文件识别,即使文件中存有其他用户的信息,也不允许他们以SYSOPER/SYSDBA的权限登录。此设置为缺省值。
    你可以看看这里:
    http://tech.163.com/05/0908/09/1T4AOOOC00091589.html