当前位置:首页 > 问答 > 正文

Oracle数据库命令里关于登录密码那些事儿,怎么设置和修改密码的细节讲解

在Oracle数据库里,管理用户密码是日常工作中最基本也最重要的事情之一,这就像管理你家大门的钥匙一样,钥匙丢了或者太简单,家里就不安全了,下面就来详细讲讲关于登录密码的那些事儿,主要就是怎么设置新密码和修改老密码。

第一部分:修改自己的密码

当你已经用自己的账号和密码登录到Oracle数据库之后,如果你觉得密码该换了,或者密码快到期了系统提醒你改,这时修改起来是最简单的,你不需要任何特殊权限,因为这是修改你自己的东西,最常用的命令是ALTER USER命令,但用法很特别,你不需要指定用户名,因为数据库知道当前是谁登录的,命令格式是这样的:

ALTER USER user_name IDENTIFIED BY new_password;

当你已经登录时,可以省略用户名,直接写:

ALTER USER IDENTIFIED BY 新密码;

Oracle数据库命令里关于登录密码那些事儿,怎么设置和修改密码的细节讲解

举个例子,假设你用的是SQL*Plus这个命令行工具,你现在用账号scott登录了,想把密码从原来的tiger改成lion123,你就可以在SQL>提示符下输入:ALTER USER scott IDENTIFIED BY lion123; 或者直接 ALTER USER IDENTIFIED BY lion123; 然后按回车执行,执行成功后,系统会提示“User altered.”,这就表示密码改好了,下次你再登录时,就必须用lion123这个新密码了。

除了用SQL命令,在一些图形化工具里,比如Oracle自带的SQL Developer,通常在连接上数据库之后,在菜单里能找到修改当前用户密码的选项,点进去输入新密码确认就行,本质上工具也是在后台帮你执行了上面那个ALTER USER命令。

第二部分:管理员修改其他用户的密码

如果你是数据库管理员(DBA),比如你用SYSSYSTEM这种有高级权限的账号登录的,那你就有责任管理所有普通用户的密码,比如有员工离职了,你需要冻结他的账号;或者有新员工入职,你需要给他创建账号并设初始密码;又或者有用户忘记密码了,来找你重置,这时候,你用的命令和上面那个一样,都是ALTER USER,但必须带上要修改的那个用户的用户名,命令格式就是完整版:

ALTER USER 要修改的用户名 IDENTIFIED BY 新密码;

Oracle数据库命令里关于登录密码那些事儿,怎么设置和修改密码的细节讲解

管理员要给用户hr把密码重置成Welcome123,就执行:ALTER USER hr IDENTIFIED BY Welcome123;,执行完后,hr用户就可以用Welcome123这个新密码登录了,这里要特别注意,作为管理员,你应该把初始密码告诉用户,并建议他第一次登录后立即改成自己知道的、更安全的密码,从安全角度讲,管理员不应该知道用户的最终密码。

第三部分:创建新用户并设置密码

创建新用户和设置初始密码也是管理员的活儿,这用的是CREATE USER命令,这个命令不仅要指定用户名,还必须同时给这个用户设置一个初始密码,命令的基本样子是:

CREATE USER 新用户名 IDENTIFIED BY 初始密码;

要创建一个叫new_employee的用户,初始密码设为temp123,命令就是:CREATE USER new_employee IDENTIFIED BY temp123;,但光创建用户和设密码还不够,新用户就像毛坯房,没有权限,连数据库都登不进去(虽然密码对了),所以创建完后,管理员通常还要紧接着授予他最基本的“创建会话”的权限,命令是:GRANT CREATE SESSION TO new_employee;,这样他才能用new_employee/temp123成功登录。

Oracle数据库命令里关于登录密码那些事儿,怎么设置和修改密码的细节讲解

第四部分:密码的复杂度和管理策略

Oracle数据库不像一些网站,要求密码必须多少位、有数字字母符号,它允许你设非常简单的密码,比如1,甚至空密码(虽然极不推荐),但Oracle提供了一套非常强大的密码管理策略,可以由管理员来配置,强制用户使用强密码,这些策略包括:

  1. 密码生命周期:可以规定密码多少天后必须更换,比如90天,到期前会提醒用户改密码。
  2. 密码历史:可以规定新密码不能和最近几次用过的旧密码一样,防止你总在几个密码之间换来换去。
  3. 密码复杂度验证:可以启用一个密码验证函数,强制要求密码必须满足一定复杂度,比如最小长度、包含大小写字母、数字、特殊字符等,如果用户设置的密码太简单,系统会拒绝修改。
  4. 失败登录限制:可以设定如果连续输错密码几次(比如5次),就自动锁定账号一段时间,防止被人一直试密码。
  5. 密码重用时间:可以设定一个时间(比如180天),在这个时间内,你不能重复使用以前用过的密码。

这些策略通常是通过一个叫“配置文件”的东西来管理的,管理员可以修改默认的配置文件DEFAULT,或者创建新的配置文件,然后把用户分配到这个配置文件上,用户就得遵守这个文件里的密码规则,查看和修改这些策略需要用到像ALTER PROFILE这样的命令,但这部分就比较深入了,属于高级管理范畴,对于普通用户来说,能感受到的就是系统会提示你密码太简单了,或者密码快到期了请更改。

第五部分:关于密码的注意事项

最后说几个小细节,Oracle的密码是区分大小写的,也就是说Passwordpassword是两个不同的密码,这在设置和输入时要特别注意,如果你真的忘掉了密码,自己是没办法的,只能找数据库管理员帮你重置,管理员可以用前面第二部分说的方法,用他的高级权限账号登录,然后执行ALTER USER命令给你设个新密码。

Oracle数据库里设置和修改密码,核心命令就是ALTER USERCREATE USER搭配IDENTIFIED BY子句,自己改自己的简单,管理员改所有人的需要权限,数据库有一整套机制来保证密码的安全性,防止设置弱密码和暴力破解,把这些基本操作弄明白了,关于Oracle登录密码的事儿也就基本清楚了。 综合参考自Oracle官方文档中关于SQL语言参考的CREATE USER、ALTER USER语句,以及数据库安全管理指南中关于用户认证和密码管理部分的常见描述。)