在创建Oracle数据库时,如下两个用户被自动创建,

1. SYS,默认密码为CHANGE_ON_INSTALL,当创建一个数据库时,SYS用户将被默认创建并授予DBA角色,所有数据库数据字典中的基本表和视图都存储在名为SYS的方案中,这些基本表和视图对于Oracle数据库的操作时非常重要的。为了维护数据字典的真实性,SYS方案中的表只能由系统来维护,他们不能被任何用户或数据库管理员修改,而且任何用户不能在SYS方案中创建表。
2. SYSTEM,默认密码为MANAGER,与SYS一样,在创建Oracle数据库时,SYSTEM用户被默认创建并被授予DBA角色,用于创建显示管理信息的表或视图,以及被各种Oracle数据库应用和工具使用的内容表或视图。
  在手动创建数据库时, 建议在创建数据库的同时指定SYS和SYSTEM用户的密码,而不要使用默认密码,除了这两个用户外, 建议至少再创建一个管理员用户,将其授予适当的管理员角色来执行日常管理工作,尽量不要直接使用SYS和SYSYTEM来惊醒日常管理工作。
 
  Oracle默认创建的用户还有 :SYS、SYSTEM、SYSMAN、DBSNMP
 
 

Oracle默认管理员密码是固定的,这是为了安装和调试的方便。笔者发现很多国内网站的Oracle数据库没有更改这两个用户的密码,其中也包括很多大型的电子商务网站,我们就可以利用这个缺省密码去找我们感兴趣的东西。

我们连接一个Oracle数据库的时候,需要知道它的service_name或者是Sid值,就象mssql一样,需要知道数据库名。那如何去知道呢,猜?呵呵,显然是不行的。这里我们先讲讲oracle的TNSlistener,它位于数据库Client和数据库Server之间,默认监听1521端口,这个监听端口是可以更改的。但是如果你用一个tcp的session去连接1521端口的话,oracle将不会返回它的banner,如果你输入一些东西的话,它甚至有可能把你踢出去。这里我们就需要用tnscmd.pl这个perl程序了,它可以查询远程 oracle数据库是否开启(也就是ping了),查询版本,以及查询它的服务名,服务状态和数据库服务名,而且正确率很高。

 

附录 Oracle默认管理员密码
1.用户名:sys 密码:change_on_install
2.用户名:system 密码:manager
3.用户名:scott 密码:tiger