如何避免数据库用户频繁被锁定? (数据库用户老被锁定)

2023年 8月 11日 31.1k 0

数据库是当前企业信息化建设中不可缺少的一部分,但是在使用中会遇到许多问题,其中之一便是数据库用户频繁被锁定的情况。数据库用户被锁定是为了保证数据库的安全,但是频繁的锁定却会影响数据库的正常操作,给企业带来不必要的麻烦。如何避免数据库用户频繁被锁定,本文将从以下四个方面探讨。

一、采取合适的锁定策略

数据库管理员应根据企业实际情况制定合适的锁定策略。在设置锁定时间时应该结合系统的实际情况,选择合适的时间来锁定。如果锁定时间过长,会给系统带来较大的影响,而如果锁定时间过短,又会失去锁定的意义。

在设置锁定方式时,应该根据实际情况选择合适的方式。目前的主流方式有账户锁定和IP地址锁定两种。账户锁定是指在用户连续输入多次错误密码后锁定账户,避免恶意用户暴力破解密码。IP地址锁定是指在用户从某个IP地址上连续输入多次错误密码后锁定该IP地址,避免恶意IP地址对系统进行攻击。

二、设置密码策略

密码是保证数据库安全的一道关卡,因此,数据库管理员应该制定合适的密码策略,避免密码被破解。密码策略应该包括以下几个方面。

密码设置时应该要求用户设置强密码,即密码长度在至少8位以上,包含大小写字母、数字和特殊字符。应该制定密码的有效期限,避免用户长期使用同一个密码。在用户连续输入多次错误密码时,应该根据实际情况采取相应的措施,比如锁定账户或IP地址等。

三、加强安全意识教育

安全意识教育是防范数据库被攻击的重要措施,因此,企业应加强对员工的安全意识培训,提高员工对安全风险的认知能力,增强员工的安全自我保护意识。

在实际操作中,企业可以通过定期组织培训、制定规章制度等方式加强安全意识教育。此外,还可以建立安全管理机制,监督和评估员工的安全意识和行为,并采取相应的措施强制实施安全措施。

四、使用安全防范工具

现代化的企业安全管理需要依靠科技手段进行防范和监管。因此,对于数据库管理员来说,使用安全防范工具是必不可少的手段。

当前,市场上有许多数据库安全工具,如安全审计工具、排查工具、入侵检测工具等。这些工具可以帮助管理员及时发现安全威胁,并采取相应的措施。此外,还可以使用安全管理软件、网络防火墙等工具,帮助保障数据库安全。

数据库用户被锁定是数据库安全的一部分,确保数据库中的数据得到有效保护。但是,频繁的锁定会影响系统的正常操作,给企业造成很多不必要的问题。因此,为了避免这种情况的发生,数据库管理员应根据企业实际情况制定合适的锁定策略,并采取相应的措施加强安全意识教育和使用安全防范工具。只有这样,才能确保数据库的顺利运行和企业信息的安全。

相关问题拓展阅读:

  • 如何解除Oracle数据库用户账户的锁定和修改口令?
  • 数据库系统管理员登录失败,为什么被锁定账户
  • oracle用户锁定问题

如何解除Oracle数据库用户账户的锁定和修改口令?

D:\oracle\ora92\bin>sqlplus /nolog\x0d\x0a\x0d\x0aSQL*Plus: Release 9.2.0.1.0 – Production on 星期四 8月 16 11:32:\x0d\x0a\x0d\x0aCopyright (c) 1982, 2023, Oracle Corporation. All rights reserved.\x0d\x0a\x0d\x0aSQL> conn /as sysdba\x0d\x0a已连接。\x0d\x0aSQL> alter user system identified by password;\x0d\x0a\x0d\x0a用户已更改。源耐\x0d\x0a\x0d\x0aSQL> alter user sys identified by password;\x0d\x0a\x0d\x0a用户已更改。\x0d\x0a\x0d\x0aSQL> alter user system identified by manger;\x0d\x0a\x0d\x0a用和裂猛户已更改。\x0d\x0a\x0d\x0aSQL> exit\x0d\x0a从Oracle9i Enterprise Edition Release 9.2.0.1.0 – Production\x0d\x0aWith the Partitioning, OLAP and Oracle Data Mining options\x0d\x0aerver Release 9.2.0.1.0 – Production中断开\x0d\x0a\x0d\x0aD:\oracle\ora92\bin>sqlplus\x0d\x0a\x0d\x0aSQL*Plus: Release 9.2.0.1.0 – Production on 星期唤桥四 8月 16 11:40:\x0d\x0a\x0d\x0aCopyright (c) 1982, 2023, Oracle Corporation. All rights reserved.\x0d\x0a\x0d\x0a请输入用户名: system\x0d\x0a请输入口令:\x0d\x0a\x0d\x0a连接到:\x0d\x0aOracle9i Enterprise Edition Release 9.2.0.1.0 – Production\x0d\x0aWith the Partitioning, OLAP and Oracle Data Mining options\x0d\x0aerver Release 9.2.0.1.0 – Production\x0d\x0a\x0d\x0aSQL> select instance_name from v$instance;\x0d\x0a\x0d\x0aINSTANCE_NAME\x0d\x0a–

数据库系统管理员登录失败,为什么被锁定账户

一般来说,三次登录不成功就会锁定账户,怀疑是未经授权用户尝试登录,这样做是为了保护系统的颂槐。野旦友和银行卡三次密码输入不成功就会锁迟铅定或吞卡一样的。

oracle用户锁定问题

首先和猛隐扒建立唤携桥PROFILE

CREATE PROFILE lock_act LIMIT

FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 2;

分配用户TEST PROFILE

ALTER USER TEST PROFILE LOCK_ACT;

1.你可以用 alter user 用户ID account unlock 先解开这个用户锁定

2.这尘棚个机制是在用户的profile中设定,profile主要是对系统资源和用户囗令的管理,你可以打开查看,里面有个 FAILED_LOGIN_ATTEMPTS 参数,你还可以结合其它的颂段参派樱则数一起使用来管理资源和囗令。系统有个默认的profile叫default

给个示例:

1.资源的

create profile luck_prof limit

sessions_per_user 8

cpu_per_session 16800

logical_reads_per_session 23688

connect_time 268

idle_time 38;

2.囗令的,如修改 default

alter profile default limit

password_life_time 60

password_grace_time 10

password_reuse_time 1800

failed_login_attempts 3

password_lock_time 1/1440;

然后再创建或修改用户时指定一个profile如:

create user wuser

identified by wuser

…….

profile luck_prof ;

希望以上能给你提供解决问题的方向

–系统参数配置 connect sys/password@db_link as sysdba

select * from dba_profiles where resource_name like ‘FAILED_LOGIN_ATTEMPTS%’;

–1 DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10

–连续错误连接10次用户被锁定

–2.

–查看被锁的用户

select LOCK_DATE,username from dba_users where username=’USERNAME’;

LOCK_DATE为空说明没有锁定,非空为锁定。

—–

SELECT S.USERNAME,

DECODE(L.TYPE, ‘TM’, ‘TABLE LOCK’, ‘TX’, ‘ROW LOCK’, NULL) LOCK_LEVEL,

O.OWNER,

O.OBJECT_NAME,

O.OBJECT_TYPE,

S.SID,

S.SERIAL#,

S.TERMINAL,

S.MACHINE,

S.PROGRAM,

S.OSUSER

FROM V$SESSION S, V$LOCK L, DBA_OBJECTS O

WHERE S.SID = L.SID

AND O.OBJECT_ID = L.ID1

AND S.USERNAME IS NOT NULL;

–3.

–解锁毕镇方法

ALTER USER USER_NAME ACCOUNT UNLOCK;

–值的注意,在升级过程中,被锁的用户,有可能不值一个洞扮

–重新升级

—–设置系统的默认登录次数

alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS 10;

alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS UNLIMITED;

数据管理员为这个用户单独设置了登录次数则要查找这个用户对应的profile,然后修改.可以查看用户的创建语名找到对应的设置。

Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用 Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该 profile的限制之内。

二、条件:

创建profile必须要有CREATE PROFILE的系统权限。

为用户指定资源限制,必须:

1.动态地使用alter system或使用初始化参数resource_limit使资源限制生效。该改变对密码资源无效,密码资源总是可用。

SQL> show parameter resource_limit

NAME TYPEVALUE

———————————— ———– ——————————

resource_limitboolean FALSE

SQL> alter system set resource_limit=true;

系统已更改。

SQL> show parameter resource_limit;

NAME TYPEVALUE

———————————— ———– ——————————

resource_limitboolean TRUE

SQL>

2.使用create profile创建一个定义对数据库资源进行限制的profile。

3.纳数灶使用create user 或alter user命令把profile分配给用户。

三、语法:

CREATE PROFILE profile LIMIT { resource_parameters | password_parameters } … ;

{{ SESSIONS_PER_USER | CPU_PER_SESSION | CPU_PER_CALL | CONNECT_TIME | IDLE_TIME | LOGICAL_READS_PER_SESSION | LOGICAL_READS_PER_CALL | COMPOSITE_LIMIT } { integer | UNLIMITED | DEFAULT }| PRIVATE_SGA { integer | UNLIMITED | DEFAULT }}

{{ FAILED_LOGIN_ATTEMPTS | PASSWORD_LIFE_TIME | PASSWORD_REUSE_TIME | PASSWORD_REUSE_MAX | PASSWORD_LOCK_TIME | PASSWORD_GRACE_TIME } { expr | UNLIMITED | DEFAULT }| PASSWORD_VERIFY_FUNCTION { function | NULL | DEFAULT }}

四、语法解释:

profile:配置文件的名称。Oracle数据库以以下方式强迫资源限制:

.如果用户超过了connect_time或idle_time的会话资源限制,数据库就回滚当前事务,并结束会话。用户再次执行命令,数据库则返回一个错误,

.如果用户试图执行超过其他的会话资源限制的操作,数据库放弃操作,回滚当前事务并立即返回错误。用户之后可以提交或回滚当前事务,必须结束会话。

提示:可以将一条分成多个段,如1小时(1/24天)来限制时间,可以为用户指定资源限制,但是数据库只有在参数生效后才会执行限制。

Unlimited:分配该profile的用户对资源使用无限制,当使用密码参数时,unlimited意味着没有对参数加限制。

Default:指定为default意味着忽略对profile中的一些资源限制,Default profile初始定义对资源不限制,可以通过alter profile命令来改变。

Resource_parameter部分:

Session_per_user:指定限制用户的并发会话的数目。

Cpu_per_session:指定会话的CPU时间限制,单位为百分之一秒。

Cpu_per_call:指定一次调用(解析、执行和提取)的CPU时间限制,单位为百分之一秒。

Connect_time:指定会话的总的连接时间,以分钟为单位。

Idle_time:指定会话允许连续不活动的总的时间,以分钟为单位,超过该时间,会话将断开。但是长时间运行查询和其他操作的不受此限制。

Logical_reads_per_session:指定一个会话允许读的数据块的数目,包括从内存和磁盘读的所有数据块。

Logical_read_per_call:指定一次执行SQL(解析、执行和提取)调用所允许读的数据块的更大数目。

Private_sga:指定一个会话可以在共享池(SGA)中所允许分配的更大空间,以字节为单位。(该限制只在使用共享服务器结构时才有效,会话在SGA中的私有空间包括私有的SQL和PL/SQL,但不包括共享的SQL和PL/SQL)。

Composite_limit:指定一个会话的总的资源消耗,以service units单位表示。Oracle数据库以有利的方式计算cpu_per_session,connect_time, logical_reads_per_session和private-sga总的service units

Password_parameter部分:

Failed_login_attempts:指定在帐户被锁定之前所允许尝试登陆的的更大次数。

Password_life_time:指定同一密码所允许使用的天数。如果同时指定了 password_grace_time参数,如果在grace period内没有改变密码,则密码会失效,连接数据库被拒绝。如果没有设置password_grace_time参数,默认值unlimited将引 发一个数据库警告,但是允许用户继续连接。

Password_reuse_time和password_reuse_max:这两个参数必须互相关联设置,password_reuse_time指定了密码不能重用前的天数,而password_reuse_max则指定了当前密码被重用之前密码改变的次数。两个参数都必须被设置为整数。

.如果为这两个参数指定了整数,则用户不能重用密码直到密码被改变了password_reuse_max指定的次数以后在password_reuse_time指定的时间内。

如:password_reuse_time=30,password_reuse_max=10,用户可以在30天以后重用该密码,要求密码必须被改变超过10次。

.如果指定了其中的一个为整数,而另一个为unlimited,则用户永远不能重用一个密码。

.如果指定了其中的一个为default,Oracle数据库使用定义在profile中的默认值,默认情况下,所有的参数在profile中都被设置为unlimited,如果没有改变profile默认值,数据库对该值总是默认为unlimited。

.如果两个参数都设置为unlimited,则数据库忽略他们。

Password_lock_time:指定登陆尝试失败次数到达后帐户的缩定时间,以天为单位。

Password_grace_time:指定宽限天数,数据库发出警告到登陆失效前的天数。如果数据库密码在这中间没有被修改,则过期会失效。

Password_verify_function:该字段允许将复杂的PL/SQL密码验证脚本做 为参 数传递到create profile语句。Oracle数据库提供了一个默认的脚本,但是自己可以创建自己的验证规则或使用第三方软件验证。 对Function名称,指定的是密码验证规则的名称,指定为Null则意味着不使用密码验证功能。如果为密码参数指定表达式,则该表达式可以是任意格 式,除了数据库标量子查询。

五、举例:

.创建一个profile:

create profile new_profile limit password_reuse_max 10 password_reuse_time 30;

.设置profile资源限制:

create profile app_user limit sessions_per_user unlimited cpu_per_session unlimited cpu_per_call 3000 connect_time 45 logical_reads_per_session default logical_reads_per_call 1000 private_sga 15k composite_limit;

总的resource cost不超过五百万service units。计算总的resource cost的公式由alter resource cost语句来指定。

.设置密码限制profile:

create profile app_users2 limit failed_login_attempts 5 password_life_time 60 password_reuse_time 60 password_reuse_max 5 password_verify_function verify_function password_lock_time 1/24 password_grace_time 10;

.将配置文件分配给用户:

SQL> alter user dinya profile app_user;

用户已更改。

SQL> alter user dinya profile default;

用户已更改。

1、查看FAILED_LOGIN_ATTEMPTS的值

select * from dba_profiles

2、修改辩大清携前为30次

alter profile default limit FAILED_LOGIN_ATTEMPTS 30;

3、修改为无限次(为安全起见,不建议使仿物用)

alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;

关注

数据库用户老被锁定的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于数据库用户老被锁定,如何避免数据库用户频繁被锁定?,如何解除Oracle数据库用户账户的锁定和修改口令?,数据库系统管理员登录失败,为什么被锁定账户,oracle用户锁定问题的信息别忘了在本站进行查找喔。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论