1、os认证
oracle安装之后默认情况下是启动os认证。os认证的意思是把登录到数据
库的用户和口令校验放在了操作系统一级。如果以安装oracle时的用户登录os,
那么登录oracle数据库时不需要任何验证如:
SQL>conntest/oracleassysdba
Connected.
SQL>conntest/oracle@orclassysdba
Connected.
SQL>conn/assysdba
Connected.
SQL>connss/ssassysdba
Connected.
SQL>connss/ss@orclassysdba
Connected.
SQL>conntest/ss@orclassysdba
Connected.
SQL>conntest/oracle@orclassysdba
Connected.
不论输入什么用户,那怕该用户不存在,只要一sysdba的权限连接都可以
连接,这样在虽然很方便但是很不安全。
这是我们可以把oracle_home/NETWORK/admin/中的
TICATION_SERVICES=(nts)nts改成none或者注释掉这句话(在
前面加上#),就可以屏蔽os功能,要想sys用户连接数据库必须输入正确的口
令,或者将该用户从ora_dba组删除。
TICATION_SERVICES=(NTS)|(NONE)|(ALL)
TICATION_SERVICES=(NTS):操作系统认证方式,不使用口令文
件
TICATION_SERVICES=(NONE):口令文件认证方式
TICATION_SERVICES=(ALL):两种都采用
2、参数remote_login_passwordfile
REMOTE_LOGIN_PASSWORDFILE=(NONE)|(EXCLUSIVE)|(SHARED)
REMOTE_LOGIN_PASSWORDFILE=(NONE):不使用口令文件,操作系统认证
REMOTE_LOGIN_PASSWORDFILE=(EXCLUSIVE):口令文件认证方式,但只有一个数
据库实例可以使用此文件,
系统允许将SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用户,且以具有
这类身份的其他用户登录是有效的
REMOTE_LOGIN_PASSWORDFILE=(SHARED):口令文件认证方式,可有多个数据库实
例使用此文件,但是此设置下
只有INTERNAL/SYS帐号能被识别,即使文件中存有其他用户的信息,也不允许
他们以SYSOPER/SYSDBA登录
3,、oracle口令文件
oracle的口令文件的作用是存放所有已sysdba或者sysoper权限的连接数
据的用户,使用口令文件的好处就是,在数据关闭的情况下,依然可以通过口
令文件验证来连接数据库。客户端要以sysdba登录数据库也必须使用口令文件。
默认路径是(oracle_home/databa/)
(1)口令文件用户的查看,添加,删除
SQL>lect*fromv$pwfile_urs;
USERNAMESYSDBSYSOP
----------------------------------------
SYSTRUETRUE
TESTTRUEFALSE
SQL>revokesysdbafromtest;
Revokesucceeded.
SQL>lect*fromv$pwfile_urs;
USERNAMESYSDBSYSOP
----------------------------------------
SYSTRUETRUE
SQL>grantsysdbatotest;
Grantsucceeded.
SQL>lect*fromv$pwfile_urs;
USERNAMESYSDBSYSOP
----------------------------------------
SYSTRUETRUE
TESTTRUEFALSE
(2)口令文件的建立
C:\>ORAPWDFILE=<FILENAME>PASSWORD
=<PASSWORD>ENTRIES=
----各命令参数的含义为:
----FILENAME:密码文件名;
----PASSWORD:设置INTERNAL/SYS帐号的口令;
----MAX_USERS:密码文件中可以存放的最大用户数
-----force:默认值是n,他的作用类似也创建表空间时的reu
(3)sys密码丢失的处理办法
首先要保证remote_login_passwordfile=shared
1).查询视图V$PWFILE_USERS,lect*fromV$PWFILE_USERS;
记录下拥有SYSOPER/SYSDBA系统权限的用户信息
2).关闭数据库shutdownimmediate
3).删除密码文件,文件路径一般为:ORACLE_HOME\DATABASE,文件名
为PWD
4).创建密码文件
ORAPWDFILE=<FILENAME>PASSWORD=<PASSWORD>
5).向密码文件中增加用户
CONNECTSYS/internal_ur_passswordASSYSDBA;
启动数据库实例并打开数据库;创建相应用户帐号,对其授权
授予权限:GRANTSYSDBATOur_name(如果先前数据库只有sys
具有sysdba权限,可不做这步)
6).修改密码文件状态,默认密码文件的状态shared,要将初始化参数里的
REMOTE_LOGIN_PASSWORDFILE设置成EXCLUSIVE
SQL>altersystemtremote_login_passwordfile=exclusive
scope=spfile;
4、总结
从上面的分析可以看出,当以sysdba/sysoper登录数据库时,主要是有
,口令文件,参数remote_login_passwordfile
决定的,所以
当TICATION_SERVICES=(NONE),
REMOTE_LOGIN_PASSWORDFILE=(NONE)是一定不可以以sysdba登录数据库的。
本文发布于:2022-11-26 14:55:30,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/25770.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |