ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【转载】数据库登录

【转载】数据库登录

原创 Linux操作系统 作者:klamm0 时间:2009-11-09 11:14:47 0 删除 编辑
普通用户无法启动或关闭数据库,其原因在于普通用户依据数据字典进行身份验证,但是数据字典在数据库打开前无法被读取,从而出现普通用户注定无法启动(或创建)数据库的情况。一次我们必须使用某种外部身份验证方式来连接数据库:作为 Oracle 软件拥有组的一个成员,通过操作系统进行身份验证;通过给出存在于外部口令文件的某个用户名/口令组合进行身份验证。通过在用户进程中给出使用适当语法的 CONNECT 命令,就可以告知 Oracle 希望使用外部身份验证。如果正在使用 Database Control,那么实现这个目的比较容易:在 Connect As 组合框内选中 SYSOPER 或 SYSDBA。
 
Database Control 并没有给出使用操作系统身份验证的选项,这是因为 Database Control 总是如同远程进程一样通过某个侦听程序进行连接。如果侦听程序未运行或不能识别希望连接的数据库,那么就无法使用 Database Control。如果正在使用 SQL*Plus,那么 CONNECT 命令的语法会告知 Oracle 使用哪一种身份验证类型:默认的数据字典身份验证(Database Control 用语中的 Normal)、口令文件身份验证或操作系统身份验证。CONNECT 命令可能具有下列语法:
connect user/pass[@db]
connect user/pass[@db] as sysdba
connect user/pass[@db] as sysoper
connect / as sysdba
connect / as sysoper
第一个和示例是标准的数据字典身份验证。Oracle 会依据数据字典中的存储值来验证用户名/口令组合,此时数据库必须打开。任何用户只要使用这种语法连接数据库,那么就无法执行启动和关闭命令。接下来的两个示例指示 Oracle 进入外部口令文件验证用户名/口令组合。最后两个示例使用了操作系统身份验证,此时,Oracle 会进入主机操作系统,并且查看运行 SQL*Plus 的主机操作系统用户是否为拥有 Oracle 软件的操作系统组的一个成员,如果用户通过上述测试,那么该用户就可以在不必给出用户名和口令的情况下作为 SYSDBA 或 SYSOPER 登录。使用后 4 种语法连接数据的用户不仅能够执行数据库的启动和关闭命令,而且还可以在任何状态下(即使数据库还未被创建的情况)连接数据库。
 
某些特殊的权限具有特殊的性能,这些权限只有在用户使用外部身份验证连接数据库时才有效。SYSOPER 能够执行如下所示的命令:
STARTUP
SHUTDOWN
ALTER DATABASE [MOUNT | OPEN | CLOSE | DISMOUNT]
ALTER [DATABASE | TABLESPACE] [BEGIN | END] BACKUP
RECOVER
SYSDBA 权限包括上述的所有命令,此外还能够创建数据库,执行不完全恢复以及创建其他 SYSOPER 和 SYSDBA 用户。
 
SYSDBA 与 SYSOPER 不是用户,而是能够被授予用户的权限。在默认情况下,只有用户 SYS 才具有这些权限。只有在需要完成普通用户无法执行的过程时,我们才应当使用上述的任一种权限来连接数据库。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22786751/viewspace-618398/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-10-30

  • 博文量
    58
  • 访问量
    58090