Oracle 10g身份验证
Oracle 10g支持通过Oracle验证、Windows验证、以及高级安全选项进行身份验证。
基于Oracle的身份验证方式将用户名和密码安全地存储在数据库中,所有平台均支持这种验证方式,类似于SQL Server验证。密码通过加密实现安全存储。和SQL Server 2005一样,您也可以使用安全策略帮助管理Oracle数据库验证帐户的密码并在整个域内提供一致的密码策略。Oracle数据库验证是Oracle 10g默认的验证机制,这与Windows验证正好形成鲜明对比,因为SQL Server平台上的默认验证机制就是Windows验证,它为用户提供了使用Kerberos这种强大验证协议的能力。如果希望在Oracle中使用更强的验证协议,那么就需要启用Windows验证或者在Oracle 10g企业版中安装Oracle高级安全选项。
在Oracle 10g中一个未被普遍使用的选项就是集成的Windows验证。使用Windows验证机制对Oracle用户进行身份验证的好处包括:使用NT LAN Manager或者Kerberos作为验证协议、在整个Windows域中推行一致的密码策略等。Oracle 10g通过两种手段来支持Windows验证:两个特殊的Windows组以及与当前登录的Windows用户相匹配的Oracle用户。 Oracle安装会创建ORA_DBA和ORA_OPER这两个Windows组。可以使用Oracle Administration Assistant for Windows将用户添加到这些组。
登录到SQL*Plus后,ORA_DBA组中任何用户都可以使用下面的命令作为SYSDBA连接到任何Oracle应用程序:
您也许注意到该登录并没有与之相关的用户ID,但是登录还是可以通过Windows的身份验证并且拥有SYSDBA权限(完全访问)。如果您不希望某个帐户拥有SYSDBA权限,可以将用户添加到SYS_OPER组,那么该用户只能执行有限的数据库管理员(DBA)功能,例如执行数据库备份。sqlplus "/ as sysdba"
也可以在Oracle数据库中使用Windows验证作为用户验证机制。完成该任务需要在数据库中创建一个和Windows用户ID一样的用户ID,此外还有一些限制,例如Oracle用户名中不允许包含30个以上字符。
因为Windows验证方式提供了SSO、安全策略、以及安全的验证协议,因此我们将对两个平台上设置Windows验证的方式做个对比。
sqlplus "/ as sysdba"