我用oracle的oem工具创建了一个数据库实例,并且使用oem工具创建了一个监听程序和一个本地服务,然后创建了一个用户为tplife,密码为tplife,再使用了语句grant all privileges to tplife;
完成上述工作之后我发现这个tplife用户能够以sysdba和normal两种权限登录,觉得很奇怪。所以我使用语句删除了该用户,然后以sysdba登录系统,使用查询语句查询select * from users_user,发现已经没有了该用户,但是我仍然可以使用sqlplus "tplife/tplife as sysdba"登录系统,不知道为什么?基于此,我决定删除所有的监听程序和本地服务以及数据库实例,使用sqlplus "tplife/tplife as sysdba"以及sqlplus "sysdba/000000 as sysdba"登录系统,报适配器错误,然后我建立了一个数据库实例,再使用上述两个语句登录系统,又可以登录系统了。很奇怪,为什么不需要建立监听程序和服务就可以使用sysdba登录系统??到底oracle该如何建立数据库,监听,服务以及创建用户,授权的???求教解决上述四个问题,谢谢!!

解决方案 »

  1.   

    在安装ORACLE的服务器上登录, 如果登录服务器是用的超级用户的话,ORACLE认为此超级用户也具有ORACLE的超级用户权限
      

  2.   


    我不大明白楼上的意思。
    事实上我也只是建立了一个用户,并给它授权所有的权限而已,不至于到最后都无法删除此用户吧?
    另外,只是建立了数据库实例就可以使用sysdba登录吗??
      

  3.   

    是的,sysdba可以在数据库Open之前登录,sysdba用户保存在创建数据库实例时的密码文件中,如果需要删除,可能需要借助oradim.
      

  4.   

    那应该怎么样使用oradim删除sysdba用户呢?