数据库身份认证比较好理解,就是数据库用户口令以加密的方式保存在数据库内部,当用户连接数据库时必须输入用户名和密码,通过数据库认证后才可以登录到数据库。例如,创建一个数据库认证的用户,语句为:
SQL> create user hxy4 identifiedsys123; // 通过by这个关键字来确定认证方式为数据库身份认证
User created.
为此,
--数据库身份认证:Oracle认证认为操作系统用户是不可信任的,如果要访问数据库,必须进行再次认证。
外部身份认证--操作系统认证:即oracle认为操作系统用户是可靠的,即既然能登陆到操作系统那么oracle数据库你也能登陆()
当用户试图建立与数据库的连接时,数据库不会要求用户输入口令和用户名
——如果使用外部身份验证创建用户账户,Oracle 会将身份验证委托给外部服务。它不会提示输入口令。如果为启用 Advaned Security 选项,则唯一可以使用得外部身份验证方形式是操作系统身份验证。此技术使用与操作系统用户账户同样的名称创建 Oracle 用户账户,但在前面加OS_AUTHENT_PREFIX 实例参数指定的字符串。此参数默认为 OPS$ 字符串。可以用下列语句查询:
SQL> show parameter os_authent_prefix NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ os_authent_prefix string ops$ SQL> 或者: SQL> select value from v$parameter where name= 2 / VALUE -------------------------------------------------------------------------------- ops$
创建外部操作系统身份验证的用户很简单,假如有一个操作系统用户名为 dragon,则:
对于 LINUX 系统: create user ops$dragon identified externally; 对于 WINDOWS 系统,假如登陆 ID 是 Dragon,域名是 MIS: create user "OPS$MISDRAGON" identified externally;
创建好用户后,以 dragon 身份登录到操作系统,然后在直接输入:sqlplus / 进行登录并连接到数据库。