oracle用户相关

一、用户密码

1、准备工作,连接数据库

使用SQLplus直接以管理员身份登录sys用户:

sqlplus /  as sysdba

或先使用sqlplus连接数据库,再以管理员身份登录sys用户

sqlplus /nolog
conn sys/sys as sysdba

2、修改用户密码

普通用户:

(1)通过alter user语法来进行修改 ,这也是最常见的方式:

sql> alter user 用户名 identified by 新密码;
sql> commit;             #提交所有修改

(2) 第二种方式,是通过password命令来修改:

sqlplus / as sysdba
sql> password 用户名
New password:
Retype new password:
sql> commit

从安全性角度来说 ,推荐大家通过第二种方式来修改用户密码,这样可防止明文密码泄露。

sys用户

另外关于sys用户密码,不要使用password以及alter user 方式去修改,原因主要如下:
(1) 当REMOTE_LOGIN_PASSWORDFILE参数设置为shared时,我们使用alter user 修改sys密码时,会报
ORA-28046: Password change for SYS disallowed error.
(2) 大多数内部递归SQL都使用SYS用户。因此,如果您试图在数据库打开时使用ALTER USER语句更改此密码,则可能会导致死锁。

因此,对于sys用户我们需要使用orapwd来进行修改:
[oracle@orcl dbs]$ orapwd file=‘orapworcl’ entries=5 force=y 这里注意等号左右不能有空格;
参数说明:

file:要分配给密码文件的名称。您必须提供完整的路径。如果只提供文件名,则文件将写入当前目录。
entries:(可选)文件中允许的最大条目数(用户帐户)。
force:(可选)如果是,则允许覆盖现有密码文件。
IGNORECASE:(可选)如果是,则密码不区分大小写。

file:
此参数设置要创建的密码文件的名称。必须指定文件的完整路径名。此参数是必需的。

密码文件所需的文件名是特定于操作系统的。某些操作系统要求密码文件遵循特定格式并位于特定目录中。其他操作系统允许使用环境变量来指定密码文件的名称和位置。

列出了UNIX、Linux和Windows平台上密码文件所需的名称和位置。对于其他平台,请查阅特定于平台的文档。

平台(Platform)文件名称文件路径
UNIX and Linuxorapw+$ORACLE_SID$ORACLE_HOME/dbs
WindowsPWD+$ORACLE_SID+.org$ORACLE_HOME/database

例如,对于一个数据库实例的SID为orcldw,则密码文件必须命名为:linux:orapworcldw,windows:PWDorcldw.ora

在需要将环境变量设置为密码文件路径的平台上的Oracle Real Application Clusters环境中,每个实例的环境变量必须指向同一密码文件。

警告:
保护密码文件和标识密码文件位置的环境变量对系统安全至关重要。任何能够访问这些内容的用户都可能会危及连接的安全性。

ENTRIES:
此参数指定需要密码文件接受的条目数。此数字对应于允许连接到数据库的不同用户的数量如SYSDBA或SYSOPER,实际允许的条目数可能高于用户数,因为ORAPWD实用程序会继续分配密码条目,直到操作系统块被填充。例如,如果您的操作系统块大小为512字节,则它包含四个密码条目。分配的密码条目数总是四的倍数。
当用户被添加到密码文件或从密码文件中删除时,可以重用条目。如果要指定REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE,并允许向用户授予SYSDBA和SYSOPER权限,则需要此参数。

警告:
当超过分配的密码条目数时,必须创建新的密码文件。为了避免这种必要性,请分配比您认为需要的条目更多的条目。

FORCE
如果此参数设置为Y,则可以覆盖现有密码文件。如果已存在同名的密码文件,并且此参数被忽略或设置为N,则返回错误。

IGNORECASE
如果此参数设置为y,则密码不区分大小写。也就是说,当将用户在登录期间提供的密码与密码文件中的密码进行比较时,将忽略大小写。

二、oracle用户解锁

方法:

1、利用“select username,account_status,lock_date from dba_users;”命令,该命令可以显示哪些用户被锁;
2、利用“select * from dba_users where username=‘指定用户实例名’”命令,该命令可显示指定用户是否被锁。
注:结果中 “lock_date” 或 “expiry_date” 为空表示没有被锁,非空则表示锁定。

查看哪些用户被锁

select username,account_status,lock_date from dba_users;

查看指定用户是否被锁
查看用户ECOLOGY账户锁情况: 注:多用户表达式为:(‘MES’,‘SYSTEM’);

select username,account_status,expiry_date from dba_users where username in 'ECOLOGY';

结果中account_status的值为OPEN则没有被锁,为EXPIRED&LOCKED则被锁,expiry_date字段表示用户的过期时间

用户解锁
语法:

解锁:
alter user 用户名  account unlock;
修改密码并解锁:
alter user 用户名 identified by 密码 account unlock

用户ecology解锁:

ALTER USER ECOLOGY ACCOUNT UNLOCK;

修改密码并解锁:
ALTER USER ECOLOGY IDENTIFIED BY ECOLOGY ACCOUNT UNLOCK;

三、oracle设置用户密码永不过期

1.查看数据库用户过期时间

select username,expiry_date from dba_users where username in ('MES','SYSTEM');

如果EXPIRY_DATE为NULL,表示永不过期!

2、查询用户所属的密码过期策略:

select username,profile from dba_users where username in ('MES','SYSTEM');

默认的密码过期策略为“DEFAULT"

3、查询该密码过期策略的属性:

select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';

4、修改该策略的过期时间

alter profile default limit password_life_time unlimited;
commit         //提交修改

可以设置成想要的过期天数,也可以设置成 ”unlimited" 表示修改为永不过期。再次查询是否生效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值