中国龙,中国风,中国会变得更加强大! 力量越大,责任越大! 人的一生,会面临很多选择,但决定一个人一生的,往往就是最关键那么的一两步

Oracle数据库常见问题答疑(一)之一

上一篇 / 下一篇  2008-10-18 09:18:27 / 个人分类:数据库

问:我为什么不能以SYSDBA身份连接到TestDb?
  
  答:通常Oracle中的SYS口令与INTERNAL口令是同步的,SYS口令存储于口令文件中。在上述情况下你建立了包含有一个口令的口令文件,而不是使用缺省的 “change_on_install,”这就是问题之所在。
  
  希望下面的方法对你有所帮助。首先,建立一个口令文件,其中包含一个口令,这个口令不要与系统口令匹配:
  
  $ orapwd file=orapw password=foobar
  
  entries=40
  
  然后,进入服务器,启动数据库
  
  $ svrmgr
  
  SVRMGR> connect internal
  
  Connected.(已连接)
  
  SVRMGR> startup
  
  ORACLE instance started.(ORACLE 实例已启动)
  
  Tot
  
  al System Global Area (系统全局区域大小)
  
  193073136 bytes
  
  Fixed Size (固定大小)
  
  69616 bytes
  
  Variable Size (可变大小)
  
  141639680 bytes
  
  Database Buffers (数据库缓冲区)
  
  45056000 bytes
  
  Redo Buffers (重做缓冲区)
  
  6307840 bytes
  
  Database mounted. (数据库已加载)
  
  Database opened.数据库已打开。
  
  现在使用SYS用户的口令,以SYS身份连接:
  
  SVRMGR> connect sys/change_on_install@ora81
  
  Connected.(已连接)
  
  成功了。现在试着以SYSDBA身份连接:
  
  SVRMGR> connect sys/change_on_install@ora81
  
  as sysdba;
  
  ORA-01017: invalid username/password; logon
  
  denied(无效的用户名/口令;登录被拒绝)
  
  这里出现了你所说的错误。你的SYS口令为:change_on_install,但口令文件中的口令却是foobar。SYS用户是专用的,以SYSDBA身份连接就像是以INTERNAL连接,你必须使用口令文件中的口令。试试这样做:
  
  SVRMGR— connect sys/foobar@ora81 as sysdba;
  
  Connected.(已连接)
  
  并不是每个人都需要使用口令文件中的口令;用户需要使用他们自己的口令。通过授权SYSDBA给SCOTT,你就可以明白这一点:
  
  SVRMGR> grant sysdba to scott;
  
  Statement processed.(已处理)
  
  这个命令将SCOTT以SCOTT的凭证加入到口令文件中。如果你改变了SCOTT的口令,口令文件也会自动同步改变。现在,你可以试试以SYSDBA身份连接SCOTT了:
  
  SVRMGR> connect scott/tiger@ora81 as sysdba;
  
  Connected.(已连接)
  
  一切正常。现在可以使用ALTER USER 命令来改变SYS用户的口令。
  
  SVRMGR> alter user sys identified by
  
  change_on_install;
  
  Statement processed.(已成功更改)
  
  SVRMGR≫ connect sys/change_on_install@ora81
  
  as sysdba;
  
  Connected.(已连接)
  
  你还可以用change_on_install,因为改变SYS用户口令将同时改变口令文件中的口令。当你建立了口令文件后,Oracle数据库在其中放入两个账号:SYS和INTERNAL,并将你在命令行中提供的口令作为这两个账户的口令。当你改变数据库中的SYS用户口令时,数据库将冲掉口令文件中的SYS和INTERNAL口令。下面操作将显示口令foobar已经是无效的了:
  
  SVRMGR> connect sys/foobar@ora81 as sysdba;
  
  ORA-01017: invalid username/password; logon
  
  denied(无效的用户名/口令,登录被拒绝)


TAG: 数据库 oracle 问题解答

 

评分:0

我来说两句

Open Toolbar