重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
解锁:alter user scott account unlock;
成都创新互联专注于月湖企业网站建设,响应式网站,商城网站建设。月湖网站建设公司,为月湖等地区提供建站服务。全流程按需定制设计,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
锁定:alter user scott account lock;
工具/材料
CMD控制台
01
首先打开CMD命令行,输入如下的SQL语句进行oracle数据库连接,如下图所示
02
然后通过Create User命令来创建数据库用户,如下图所示,创建用户的时候可以增加临时表
03
创建好用户以后,就可以通过select命令来从dba_users表中查询创建的用户是否存在
04
接下来就需要给创建的用户进行连接授权,如下图所示,通过grant命令进行授权
05
授权成功以后,可以通过conn命令测试连接权限是否开通成功,如下图所示
06
当然还可以对用户的密码进行修改,如下图所示,通过alter命令来对用户密码进行修改
07
如果不想让一个用户进行数据库操作,你可以把这个用户锁定,如下图所示,通过alter和lock配合使用即可实现
08
最后演示一下如何删除一个用户,如下图所示,删除用户运用drop命令即可
一般Oracle用户被锁,有两种原因:1、管理员设置密码到期时间,时间到了就锁了;2、管理员设置密码容错次数,比如10次,密码输入错误超过10次就会被锁。账号被锁也不要惊慌,管理员可以后台手动解锁的,主要是防止你的密码被别人暴力破解。
oracle数据库默认操作系统认证,可以再命令行使用sqlplus / as sysdba登陆
然后使用命令alter user 用户名 account unlock;解锁
这个连续5次不好定义,假设一个人今天试验了4次,明天又试验了一次,那么也可以说是连续5次(虽然有点抬杠,不过这个也算是连续5次),这种怎么算?
以下纯属猜想,没有试验过只是把想到的可能说一说
我能想到的是oracle的一个让人很头痛的功能(因为开了这个功能的话,真的比较恐怖)——审计。这个功能会记录登录失败的信息在相关的表中,比如aud$,如果能建立触发器对该表进行统计,那么应该能实现你说的连续5次,但是这个就好像和profile没什么关系了。可能需要手动锁定用户了,然后再开启一个定时任务,一旦执行了所应用户的操作(基本上又是一个c触发器),那么5分钟后执行解锁用户,不过这个环节也太多了,而且oracle的两个计划任务有时也不怎么靠谱,万一有一个环节卡死了,那么整套流程就进行不下去了。感觉好像更麻烦的样子。
如果不在oracle的层面可能就会好解决一些,如果外面套了一层java的壳,那么简单的做一个循环就好了,只要在多长时间内(比如24小时)循环到5,或者连续循环到5,那么就锁定断开该登录(拒绝登录)5分钟,根本不用锁定用户(毕竟别人还要用)。(个人不会java,以上纯属猜测)
我记得还有一种方式可以将登录失败的信息记录到alert文件,但是就算能统计出来连续5次,然后呢,这个5怎么传入数据库,传入后怎么操作,我想了半天也没想明白。毕竟frofile本身,没有“连续密码错误”的这个参数。
今天访问应用的时候,发现账号被锁定,登录oracle后,发现很多用户都被锁定了。看下提示信息,原来是密码过期了导致账号被锁定。这里记录下这几个操作的常用命令,以方便以后自己的使用。
1.查看用户的proifle是哪个,一般是default
SELECT username,PROFILE FROM dba_users;
2.查看对应的概要文件(如default)的密码有效期设置
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3.将概要文件(如default)的密码有效期由默认的180天修改成逗无限制地(修改之后不需要重启动数据库,会立即生效)
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
4.对已经锁定和过期的账号进行解锁
(1)alter user 用户名 identified by 原来的密码 account unlock; ----不用换新密码,用户名和密码也不用加引号,这个命令会解锁账号,同时取消密码过期。
(2)alter user 用户名 account unlock; ----这个只会解锁账号,而不会取消密码过期,所以建议使用上面的口令