鸭绿江上的游轮:浅谈Oracle外部身份认证研究
来源:百度文库 编辑:偶看新闻 时间:2024/04/30 08:40:23
浅谈Oracle外部身份认证研究
一、服务器上使用操作系统验证1.配置SQLNET.ORA文件参数NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)表明解析客户端连接时所用的主机字符串的方式
TNSNAMES表示采用TNSNAMES.ORA文件来解析;
ONAMES表示Oracle使用自己的名称服务器(Oracle Name Server)来解析,目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMES;
HOSTNAME表示使用host文件,DNS,NIS等来解析;参数SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)表明用户连接Oracle服务器时使用哪种验证方式NONE表示Oracle数据库身份验证,NTS表示操作系统身份验证,两种方式可以并用。2.建立相应的操作系统组及用户加入该组ORA_DBA组中的域用户和本地用户不需要Oracle用户名和密码就可以登录Oracle而且该组的用户登录数据库后都具有SYSDBA权限(多个实例时,可以建立类似这样的组ORA_SID_DBA,其中SID指实例名)同理:ORA_OPER组中的成员具有SYSOPER角色的权限。3.登录方式C:>sqlplus “/ as sysdba”
或者C:>sqlplus nolog,然后SQL>connect / as sysdba4.init.ora中的Remote_Login_Passwordfile对身份验证的影响三个可选值:NONE:默认值,指示Oracle系统不使用密码文件,通过操作系统进行身份验证的特权用户拥有SYSORA和SYSOPER权限EXCLUSIVE:
1.表示只有一个数据库实例可以使用密码文件
2.允许将SYSORA和SYSOPER权限赋值给SYS以外的其它用户
SHARED:
1.表示可以有多个数据库实例可以使用密码文件
2.不允许将SYSORA和SYSOPER权限赋值给SYS以外的其它用户
所以,如果要以操作系统身份登录,Remote_Login_Passwordfile应该设置为NONE5.当登录用户不是ORA_DBA组和ORA_OPER组成员时,登录数据库需要在Oracle中创建当前操作系统用户相同的用户名,如果当前用户是域用户,则名称为:domainnameyourname,如果是本地计算机用户,则名称为:computernameyourname创建方法:create "domainnameyourname" identified externally;
grant connect to "domainnameyourname";Windows操作系统,修改注册表HKEY_LOCAL_MACHINESOFTWAREORACLEHOME0下面添加AUTH_PREFIX_DOMAIN,值设为FALSE,在创建Oracle用户时可以忽略掉域名这种方式下,init.ora中有一个参数将影响数据库如何匹配一个windows用户和Oracle用户os_authent_prefix = ""
缺省为空,Oracle8i以前,无该参数,而使用OPS$作为用户名前缀.(Oracle用户名最大长度限制为30个字符)二、远程客户端使用操作系统验证首先需要在init.ora文件中设置如下参数:REMOTE_OS_AUTHENT=TRUEOracle不推荐在远程客户端上使用操作系统验证,因为客户端验证时不是通过服务器上的操作系统用户来验证,而是使用客户端自己怕操作系统来进行windows验证,这样,客户端可以采用建立对应的windows机器名和用户名的方式来欺骗Oracle的操作系统验证.
例如:创建了如下Oracle用户create "zlzyk" identified externally;
grant connect to "zlzyk";如果有一台名为ZL的机器,创建了一个名为zyk的用户,并以此登录连接Oracle服务器(连接时使用@OracleSTR),无需用户名和密码造成此问题的原因是,Oracle使用客户端操作系统进行验证,它无法区别zl是域名还是机器名.Oracle数据库服务器上的windows身份认证很容易实施,并且使已登录的用户访问数据库很方便但是,这种验证模型并不适合远程客户端,因为安全隐患太大。三、Oracle 9i对操作系统身份认证支持的增强Oracle Arrayi可以与活动目录集成,通过Oracle Enterprise Security Manager 管理用户权限Enterprise user authentication做为一种新的外部集中认证模式(也叫 global user authentication,Oracle Arrayi以前的External user authentication仅仅采用了客户端操作系统本地认证)OracleArrayi运行在一个win2000及以上的域中,注册表HKEY_LOCAL_MACHINESOFTWAREORACLEHOMEID,参数OSAUTH_X50Array_NAME设置为true(默认为false,如果该参数不存在,则新增为REG_EXPAND_SZ类型)注意:Windows NT 4.0 domain 不支持这种方式
一、服务器上使用操作系统验证1.配置SQLNET.ORA文件参数NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)表明解析客户端连接时所用的主机字符串的方式
TNSNAMES表示采用TNSNAMES.ORA文件来解析;
ONAMES表示Oracle使用自己的名称服务器(Oracle Name Server)来解析,目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMES;
HOSTNAME表示使用host文件,DNS,NIS等来解析;参数SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)表明用户连接Oracle服务器时使用哪种验证方式NONE表示Oracle数据库身份验证,NTS表示操作系统身份验证,两种方式可以并用。2.建立相应的操作系统组及用户加入该组ORA_DBA组中的域用户和本地用户不需要Oracle用户名和密码就可以登录Oracle而且该组的用户登录数据库后都具有SYSDBA权限(多个实例时,可以建立类似这样的组ORA_SID_DBA,其中SID指实例名)同理:ORA_OPER组中的成员具有SYSOPER角色的权限。3.登录方式C:>sqlplus “/ as sysdba”
或者C:>sqlplus nolog,然后SQL>connect / as sysdba4.init.ora中的Remote_Login_Passwordfile对身份验证的影响三个可选值:NONE:默认值,指示Oracle系统不使用密码文件,通过操作系统进行身份验证的特权用户拥有SYSORA和SYSOPER权限EXCLUSIVE:
1.表示只有一个数据库实例可以使用密码文件
2.允许将SYSORA和SYSOPER权限赋值给SYS以外的其它用户
SHARED:
1.表示可以有多个数据库实例可以使用密码文件
2.不允许将SYSORA和SYSOPER权限赋值给SYS以外的其它用户
所以,如果要以操作系统身份登录,Remote_Login_Passwordfile应该设置为NONE5.当登录用户不是ORA_DBA组和ORA_OPER组成员时,登录数据库需要在Oracle中创建当前操作系统用户相同的用户名,如果当前用户是域用户,则名称为:domainnameyourname,如果是本地计算机用户,则名称为:computernameyourname创建方法:create "domainnameyourname" identified externally;
grant connect to "domainnameyourname";Windows操作系统,修改注册表HKEY_LOCAL_MACHINESOFTWAREORACLEHOME0下面添加AUTH_PREFIX_DOMAIN,值设为FALSE,在创建Oracle用户时可以忽略掉域名这种方式下,init.ora中有一个参数将影响数据库如何匹配一个windows用户和Oracle用户os_authent_prefix = ""
缺省为空,Oracle8i以前,无该参数,而使用OPS$作为用户名前缀.(Oracle用户名最大长度限制为30个字符)二、远程客户端使用操作系统验证首先需要在init.ora文件中设置如下参数:REMOTE_OS_AUTHENT=TRUEOracle不推荐在远程客户端上使用操作系统验证,因为客户端验证时不是通过服务器上的操作系统用户来验证,而是使用客户端自己怕操作系统来进行windows验证,这样,客户端可以采用建立对应的windows机器名和用户名的方式来欺骗Oracle的操作系统验证.
例如:创建了如下Oracle用户create "zlzyk" identified externally;
grant connect to "zlzyk";如果有一台名为ZL的机器,创建了一个名为zyk的用户,并以此登录连接Oracle服务器(连接时使用@OracleSTR),无需用户名和密码造成此问题的原因是,Oracle使用客户端操作系统进行验证,它无法区别zl是域名还是机器名.Oracle数据库服务器上的windows身份认证很容易实施,并且使已登录的用户访问数据库很方便但是,这种验证模型并不适合远程客户端,因为安全隐患太大。三、Oracle 9i对操作系统身份认证支持的增强Oracle Arrayi可以与活动目录集成,通过Oracle Enterprise Security Manager 管理用户权限Enterprise user authentication做为一种新的外部集中认证模式(也叫 global user authentication,Oracle Arrayi以前的External user authentication仅仅采用了客户端操作系统本地认证)OracleArrayi运行在一个win2000及以上的域中,注册表HKEY_LOCAL_MACHINESOFTWAREORACLEHOMEID,参数OSAUTH_X50Array_NAME设置为true(默认为false,如果该参数不存在,则新增为REG_EXPAND_SZ类型)注意:Windows NT 4.0 domain 不支持这种方式
Oracle认证
淘宝身份认证
想学oracle,得认证
想了解Oracle认证信息
oracle现在有哪些认证?
什么是cisco认证和oracle认证啊?
QQ身份认证是什么意思啊?
QQ唐怎么身份认证
比较一下oracle和sap认证
oracle现在有哪些正在进行的认证?
Oracle考的是什么的认证?
淘宝网身份认证没有身份真证怎么办?
双因素动态口令身份认证
如何才能通过淘宝的身份认证?
有谁知道动态口令身份认证系统?
静态网页怎样要求用户身份认证
php连接ldap进行身份认证问题
淘宝身份认证邮寄的问题????急.
如何启用集成windows身份认证
如何知道家电技工身份认证
轿车车身造型设计及其外部流场的研究
请问谁有oracle OCP认证考试的试题???
英语不好能通过Oracle的 9iOCP 认证吗?
英语不好能通过Oracle的 9iOCP 认证吗?