签到成功

知道了

CNDBA社区CNDBA社区

学习笔记_用户验证方式

2017-08-06 22:15 4525 0 原创 oracle
作者: tianxiadishi
总结分为sys用户和非Sys用户的验证方法
1.sys用户的两种验证方式
1).操作系统验证
只要能够访问操作系统,属于操作系统ora_dba组,就能访问数据库

2).口令文件验证(orapwd)
entries -->允许多个少sys用户连接,
0-4 除sys用户以外,最多授权允许不超过4个用户以sysdba方式登录
5-8 除sys用户以外,最多授权允许不超过8个用户以sysdba方式登录
force -->强制覆盖存在的文件
file=PWD<sid>.ora   --windows下,
orapw<SID>.ora  --linux下,名称一定要对,否则不认

3).相关配置参数和文件
remote_login_passwordfile(sysdba和sysoper权限的用户是否可以通过网络连接实例) 
1.none  --禁用口令文件
2.exclusive  --启用口令文件,单例程,多用户,
3.shared  --启用口令文件,多例程,单用户,针对RAC,通过orapw文件实现

sqlnet.ora文件
NTS  --优先操作系统验证
none  --禁用操作系统验证
 
     
在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者 ALL才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。
在linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功;设置为其他任何值都不能使用OS认证。

remote_os_authent 
默认为flase,
此参数控制某个用户是否能够在不需要给出口令的情况下从远程计算机上连接数据库(这个帐户在远程和本地上都存在)。
要结合os_authent_prefix参数使用,可以使远程用户登录时,不需要输入用户名和密码。
alter system set remote_os_authent=true scope=spfile;

4).相关视图
v$pwfile_users;
select * from v$pwfile_users;
user$
SELECT USER#,NAME,PASSWORD FROM USER$;

5).实验
1.创建口令文件
cd C:/app/Administrator/product/11.2.0/dbhome_1/database
orapwd file=PWDccc.ora password=ciscoh3c force=y entries=1
2.修改sqlnet.ora中的参数
SQLNET.AUTHENTICATION_SERVICES= (none)
修改完成后,sys用户登录不能使用操作系统级别验证了,必须输入ORAPWD产生的密码,方式如下
sqlplus "sys/ciscoh3c@ccc as sysdba"
3.组合结果
1.如果sqlplus.ora和remote都设置为none
则sys用户无法登录
2.如果sqlplus.ora(nts)和remote都设置为none
则可以使用操作系统级别验证登录
3.sqlplus.ora(none)和remote都设置为非none
则可以使用口令文件验证登录
4.查看v$pwfile_users视图,查看哪些用户被授予sysdba,sysoper,sysasm权限
select * from v$pwfile_users;
USERNAME                                                     SYSDBA     SYSOPER    SYSASM
------------------------------------------------------------ ---------- ---------- ------
SYS                                                          TRUE       TRUE       FALSE
AAA                                                          TRUE       FALSE      FALSE


2.非sys用户的密码验证方法有如下两种
1.使用数据库中数据字典验证
alter user abc identified by abc 

2.使用操作系统验证,需要使用下列关键参数
1).确定os_authent_prefix参数的值
alter system set os_authent_prefix='' scope=spfile;  --设置此值为空,其默认情况下为ops$
2).如果为windows则需修改注册表,linux不需要
HLC-software->oracle->key_oradb11g_home1下新建以下值
OSAUTH_PREFIX_DOMAIN-->字串值-->false
3).新建操作系统用户zzz
4).在oracle下新建用户zzz,方式如下
如果参数os_authent_prefix为空时,表示如果操作系统上存在与数据库用户同名的用户时,如果启用了外部验证即可直接登录数据库 
使用以下命令方式,externally表示启用外部验证
create user zzz identified externally;
grant connect to zzz 
如果参数os_authent_prefix为OPS$ ,则使用以下命令方式创建用户并启用外部验证
create user OPS$zzz identified externally; 
grant connect to OPS$zzz;
5).登录测试
(在administrator帐号下)
runas /user:zzz "sqlplus /"
(在zzz帐号下)
sqlplus /

常用登录认证方式
Connect user/pwd[@orcl]   ---使用数据字典认证
Connect user/pwd[@orcl]  as sysdba  --使用外部口令文件来验证
Connect user/pwd[@orcl]  as sysoper  --使用外部口令文件来验证
Connect / as sysdba   --使用操作系统身份验证,当前操作系统帐号是否在dba组中
Connect / as sysoper  --使用操作系统身份验证,当前操作系统帐号是否在dba组中
 
登录到远程数据库中
sqlplus
system/ciscoh3c@//10.33.11.188:1521/orcl
http://www.cndba.cn/tianxiadishi/article/2068
http://www.cndba.cn/tianxiadishi/article/2068
http://www.cndba.cn/tianxiadishi/article/2068
http://www.cndba.cn/tianxiadishi/article/2068
http://www.cndba.cn/tianxiadishi/article/2068
http://www.cndba.cn/tianxiadishi/article/2068 http://www.cndba.cn/tianxiadishi/article/2068
http://www.cndba.cn/tianxiadishi/article/2068
http://www.cndba.cn/tianxiadishi/article/2068 http://www.cndba.cn/tianxiadishi/article/2068

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
tianxiadishi

tianxiadishi

关注
  • 17
    原创
  • 0
    翻译
  • 3
    转载
  • 14
    评论
  • 访问:110250次
  • 积分:96
  • 等级:注册会员
  • 排名:第31名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ