在数据库未启动之前,如果在本地则可以通过操作系统认证来启动数据库。但是如果不在本地的话,就得通过口令文件验证来启动数据库。
1:oracle口令文件的创建
orapwd file= password= entries= force= nosysdba=
说明
file 创建的密码文件
password 创建的口令(sys用户)
entries=MAX_USER 口令文件中可以存放的最大用户数。即拥有sysdba和sysoper身份登陆的用户数
force=(Y/N) 强制覆盖已存在的密码文件
nosysdba= sysdba用户不可以登陆
例如:
orapwd file=$ORACLE_HOME/dbs/orapworcl password=huang entries=5 force=y
2.设置初始化参数
REMOTE_LOGIN_PASSWORDFILE=(NODE/SHARED/EXCLUSIVE)
参数说明
NODE oracle系统不使用口令文件,特权用户的登陆只能依靠系统进行验证
SHARED 口令文件可供多个数据库实例使用,既可以用sys帐号也可以用非
sys 用户登录。
EXCLUSIVE oracle10 不使用这个参数。但保留了该参数。效果和shared是一样的
3. 向口令文件中增加和删除用户
3.1 创建口令文件
orapwd file=$ORACLE_HOME/dbs/orapworcl password=testoracle entries=5 force=y
注意:这里口令文件的名称是有规范的,要以orapw[+sid]命名(数据库先会找orapw+sid,如果找不到就会找orapw)
3.2 设置初始化参数
REMOTE_LOGIN_PASSWORDFILE=shared
3.3 以sysdba登录据库
SQL>sys/password as sysdba
3.4启动数据库实例并打开数据库
SQL>startup
3.5 给用户user01 授权dba权限
SQL>grant sysdba to user01
3.6 收回sysdba权限
SQL>revoke sysdba from user01
4.使用口令文件登陆
SQL>conn user01/password as sysdba
5.维护口令文件
5.1查看口令文件的成员
SQL> select * from v$pwfile_users;
USERNAME SYSDBA SYSOPER
------------------------------ ------ -------
SYS TRUE TRUE
5.2扩展口令文件的用户数量
(1)查询试图v$pwfile_users;记住user。
(2)关闭数据库
(3)删除口令文件
(4)orapwd建立口令文件
orapwd file=$ORACLE_HOME/dbs/orapworcl password=huang entries=5
(5)添加用户到口令文件
SQL>sys/password as sysdba
启动数据库实例并打开数据库
SQL>startup
给用户user01 授权dba权限
SQL>grant sysdba to user01
5.3 删除口令文件
修改初始化参数
REMOTE_LOGIN_PASSWORDFILE=NODE
删除口令文件既可。