connect 是指连接到
username是指用户名
password是指密码
servername是指服务名
as sysdba是指已数据库管理员的身份登录
不知道能不能帮到你。
oracle提供的认证模式
1. 操作系统验证(匿名登录 不检验用户名和密码)
conn / as sysdba既是操作系统认证
只能用在本地 因为数据库软件安装在操作系统之上 用户必须是dba组;
能直接访问操作系统了 oracle就不需要限制了.
在类UNIX系统中 基于权限委派的原因
对于普通用户
添加到oinstall dba组中即可
如果只添加dba组也不可以
因为oracle安装目录基本都是750权限 即使改目录权限 库函数权限也无法获取 还需要改
对于root用户
因为UNIX权限委派的第一步就是验证UID是否等于0
所以即使是添加到oinstall dba组也不能登录
记住,不要用oracle以外的用户去操作oracle
就好比 老板不能去做前台一样 不要违背这些已规划好的规则.
2.密码文件认证
密码文件存储的位置 $ORACLE_HOME/dbs/orapw$ORACLE_SID
oracle中有两类特殊的身份SYSDBA和sysoper,当DBA需要对数据库进行维护管理操作的时候,
必须具有这两类特殊身份之中的一种.
在数据库没有打开的时候,使用数据库内建的账号是无法登陆数据库的,
但是拥有SYSDBA或是SYSOPER权限的用户是可以登陆的。
认证用户是否拥有两类特殊权限的方法有两种:OS认证和口令文件认证。
Oracle数据库究竟使用OS认证还是口令文件认证来进行管理取决于下面三个因素:
1.SQLNET.ORA参数文件中的参数SQLNET.AUTHENTICATION_SERVICES设置
2.PFILE(SPFILE)参数文件中的参数REMOTE_LOGIN_PASSWORDFILE设置
3.口令文件orapw$SID(Linux) | PWD$SID.ora(Windows) 是否存在
Oracle权限认证的基本顺序是这样的:
先由SQLNET.AUTHENTICATION_SERVICES的设置值来决定是使用OS认证还是口令文件认证,
如果使用口令文件认证的话就要看后面两个条件了:
如果REMOTE_LOGIN_PASSWORDFILE参数设置为非NONE,
而且口令文件存在的话就能正常使用口令文件认证,否则将会失败。
SQLNET.AUTHENTICATION_SERVICES参数
在SQLNET.ORA(位于$ORACLE_HOME/network/admin目录中)文件中,需要修改时直接用文本编辑器打开修改就行了,
对于不同的操作系统SQLNET.AUTHENTICATION_SERVICES的取值会有些不一样,通常我们会用到下面的一些设置值:
linux下 none all nts 不设置或BEQ 四种情况
启动监听 lsnrctl start 用于网络连接 走密码文件
使用外部命令将sys的密码设置成a
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=a force=y
linux平台测试
第一种默认情况 没设置或者设置成BEQ
[oracle@dba admin]$ grep -v '#' sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
[oracle@dba admin]$
$ sqlplus sys/a@db10 as sysdba
可以登录
$ sql / as sysdba
可以登录
结论: 没设置或值为BEQ时 密码认证和OS认证都启用
第二种情况 设置成none
[oracle@dba admin]$ grep -v '#' sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET.AUTHENTICATION_SERVICES=(none)
[oracle@dba admin]$
[oracle@dba admin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Sat Apr 30 04:35:02 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
ERROR:
ORA-01031: 权限不足
SQL> conn sys/a as sysdba
Connected.
SQL>
SQL> conn sys/a@db10 as sysdba
Connected.
SQL>
结论: (none) OS认证被屏蔽 必须走密码文件认证
第三种情况 设置成all
SQL> conn / as sysdba
Connected.
SQL> conn sys/a@db10 as sysdba
ERROR:
ORA-12641: Authentication serv