欢迎投稿

今日深度:

Oracle OS认证和口令文件认证方法,oracleos

Oracle OS认证和口令文件认证方法,oracleos


OS认证

1.在SQLNET.ORA(位于$ORACLE_HOME/NETWORK/ADMIN目录中)文件中,使用vi编辑,注释掉#SQLNET.AUTHENTICATION_SERVICES = (NONE)该行。

2.检查当前OS用户是否属于DBA组。

3.执行sqlplus / as sysdba 登录数据库。

口令文件认证

1.在SQLNET.ORA(位于$ORACLE_HOME/NETWORK/ADMIN目录中)文件中,使用vi编辑,修改为SQLNET.AUTHENTICATION_SERVICES = (NONE),如没有则添加该行。
2.设置spfile或者pfile中
REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE ,或者 REMOTE_LOGIN_PASSWORDFILE = SHARED 

   ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE SCOPE = SPFILE ;

   查看修改结果:show parameter remote

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_dependencies_mode             string      TIMESTAMP
remote_listener                      string
remote_login_passwordfile            string      EXCLUSIVE
remote_os_authent                    boolean     FALSE
remote_os_roles                      boolean     FALSE
result_cache_remote_expiration       integer     0
3.使用orapwd创建口令文件

  orapwd file='$ORACLE_HOME/dbs/orapw$ORACLE_SID' password=pwd entries=10 force=y

4.执行sqlplus sys/pwd as sysdba 本地登录。

5.远程执行sqlplus sys/pwd@192.168.1.40/orcl as sysdba 登录。




oracle权限

Oracle的操作系统身份认证

oraclelogin数据库远程登录authenticationos
sqlnet.authentication_services=(NTS),在$ORACLE_HOME/network/admin/sqlnet.ora中
NTS特指的是windows系统,或者设为all,这两种情况都允许操作系统认证。
如果在unix下如果没有设置sqlnet.authentication_services,默认就是操作系统认证!或者设为all也允许操作系统认证。
参数SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)表明用户连接Oracle服务器时使用哪种验证方式
NONE表示Oracle数据库身份验证,NTS表示操作系统身份验证,两种方式可以并用。

数据库用sysdba登录的验证有两种方式,一种是通过os认证,一种是通过密码文件验证;登录方式有两种,一种是在数据库主机直接登录(用os认证的方式),一种是通过网络远程登录;需要设置的参数有两个,一个是SQLNET.AUTHENTICATION_SERVICES,一个是REMOTE_LOGIN_PASSWORDFILE。
os认证:如果启用了os认证,以sysdba登录,那么我们只要用oracle软件的安装用户就能登录:sqlplus “/ as sysdba”。如果我们要禁用os认证,只利用密码文件登录,我们首先要有一个密码文件:
orapwd file=C:/oracle/product/10.2.0/db_1/database/PWDoralocal.ora password=maximo entries=10;
然后我们要把$ORACLE_HOME/network/admin/sqlnet.ora中设置:
SQLNET.AUTHENTICATION_SERVICES= none
注意一下,密码文件只在数据库启动的时候加载进去,一旦加载进去,密码文件就脱离了oracle管理,所以我们用orapwd新建密码文件后,里面指定的密码要在数据重启后才能生效:

至此,我们已经实现不用os认证(sqlplus “/ as sysdba”的方式登录不了)。那么我们怎么限制网络方面利用sysdba远程登录呢?我们可以设置初始化文件中的REMOTE_LOGIN_PASSWORDFILE=none。
注意,当REMOTE_LOGIN_PASSWORDFILE=none时,这个参数生效需要重启数据库,并且,一旦启用这个参数,将使用操作系统认证,不使用口令文件。因此如果REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= none这个时候数据库是无法登录的。

alter system set REMOTE_LOGIN_PASSWORDFILE=none scope=spfile;
(1)REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= none:
oracle安装用户本地sqlplus “/ as sysdba”无法登录
非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”无法登录
非oracle安装用户远程s......余下全文>>
 

用PL/SQL登录本机oracle 10g 数据库输入不存在用户与任意密码 用dba权限都可以登录数据库,详解

这是因为在安装Oracle的时候默认是使用了操作系统验证:

数据库用sysdba登录的验证有两种方式,一种是通过os认证,一种是通过密码文件验证;登录方式有两种,一种是在数据库主机直接登录(用os认证的方式),一种是通过网络远程登录;需要设置的参数有两个,一个是SQLNET.AUTHENTICATION_SERVICES,一个是REMOTE_LOGIN_PASSWORDFILE。

安装下面的方法修改之后,可以限制sysdba不用密码就能登录的问题。

sqlnet.authentication_services=(NTS),在$ORACLE_HOME\network\admin\sqlnet.ora中
NTS特指的是windows系统,或者设为all,这两种情况都允许操作系统认证。
如果在unix下如果没有设置sqlnet.authentication_services,默认就是操作系统认证!或者设为all也允许操作系统认证。参数SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)表明用户连接Oracle服务器时使用哪种验证方式
NONE表示Oracle数据库身份验证,NTS表示操作系统身份验证,两种方式可以并用。

os认证:如果启用了os认证,以sysdba登录,那么我们只要用oracle软件的安装用户就能登录:sqlplus “/ as sysdba”。如果我们要禁用os认证,只利用密码文件登录,我们首先要有一个密码文件: orapwd file=C:\oracle\product\10.2.0\db_1\database\PWDoralocal.ora password=maximo entries=10;
然后我们要把$ORACLE_HOME/network/admin/sqlnet.ora中设置:
SQLNET.AUTHENTICATION_SERVICES= none
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2342.html NewsArticle Oracle OS认证和口令文件认证方法,oracleos OS认证 1. 在SQLNET.ORA(位于$ORACLE_HOME/NETWORK/ADMIN目录中)文件中,使用vi编辑,注释掉#SQLNET.AUTHENTICATION_SERVICES = (NONE)该行。 2.检查当前OS用户是否...
相关文章
    暂无相关文章
评论暂时关闭