Oracle登陆验证与密码文件

本文解析了 Oracle 数据库如何允许用户在不输入密码的情况下以 sysdba 身份登录,涉及操作系统验证配置、密码文件管理和 REMOTE_LOGIN_PASSWORDFILE 设置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,为什么oracle可以不使用sys密码的前提下以sysdba身份登陆(sqlplus / as sysdba),因为oracle安装时,在本地建立了ora_dba权限组,并将操作系统用户加入了该组,另外,%ORACLE_HOME%/db_1/NETWORK/ADMIN/sqlnet.ora中,对能否进行操作系统验进行了如下定义:

 

操作系统验证有

SQLNET.AUTHENTICATION_SERVICES= (NTS)

操作系统验证无

SQLNET.AUTHENTICATION_SERVICES= (NONE)

 

设置为操作系统验证有的场合,可以任何用户进行as sysdba登陆,哪怕用户是不存在的。而且使用show user命令时,显示的都是SYS。

设置为操作系统验证无的场合,只有密码文件中存在的用户才能进行as sysdba登陆。

密码文件位置:%ORACLE_HOME%/db_1/database/ PWD%SID%.ora

 

查询密码文件中的用户:select * from v$pwfile_users;

 

追加用户到密码文件或从密码文件中删除指定用户:

GRANT  {SYSDBA | SYSOPER} TO scott;

REVOKE {SYSDBA | SYSOPER} FROM scott;

 

另外%ORACLE_HOME%/admin/%SID%/pfile/init.ora中,

有关于REMOTE_LOGIN_PASSWORDFILE的密码文件的使用设置。

REMOTE_LOGIN_PASSWORDFILE = { SHARED | EXCLUSIVE | NONE }

 

EXCLUSIVE:默认值,只有一个数据库可以使用这个口令文件。在这种模式下,口令文件可以包含SYS和SYS以外的多个特许的Oracle账户的口令。

SHARED:多个数据库可以使用相同的口令文件。这种模式不能追加其他用户到密码文件中,也不能修改现有密码文件中的口令。可以在EXCLUSIVE追加用户或修改口令,再切换成为SHARED模式。

NONE参数:Oracle会忽略口令文件,只能以操作系统用户进行sysdba访问登录。

 

注意:当设定为EXCLUSIVE或SHARED模式时,如果密码文件不存在,与设定为NONE结果相同。

 

2,密码文件的创建

ORAPWD FILE=filename PASSWORD=<password> [ENTRIES=numusers] [FORCE={Y|N}] [IGNORECASE={Y|N}]

 

FILE:口令文件名称PWD%SID%.ora。

PASSWORD:sys用户的口令。

ENTRIES:设定密码文件中Oracle用户帐户的最大数量。

FORCE:如果存在同名的密码文件,是否进行覆盖。

IGNORECASE:是否区别密码大小写。(Oracle11g有效)

 

疑问:有多个密码文件时,设定REMOTE_LOGIN_PASSWORDFILE=SHARED,会使用哪个密码文件?

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值