SQL_SAFE_UPDATES 设置说明 &MySQL

SQL_SAFE_UPDATES 设置说明

鉴于以前出现的数据大表误更新和全表误删除操作。影响服务使用和数据安全。

为了防止线上业务出现以下3种情况影响线上服务的正常使用和不小心全表数据删除:
1:没有加where条件的全表更新操作 ;
2:加了where 条件字段,但是where 字段 没有走索引的表更新 ;
3:全表delete 没有加where 条件 或者where 条件没有 走索引。
以上3种情况现在都不能正常进行操作。

会出现以下错误提示:

MySQL:

ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column

解决方案:
对应错误的表需要增加对应where 条件字段的索引, 如果真要删除全表记录。联系DBA 进行处理。

语法的设置,管理员进入MySQL
分global 和当前会话2种不同的 设置方式。
set global sql_safe_updates = 1 | 0 ; 全局生效
set sql_safe_updates = 1 | 0 ; 当前会话生效

一般开发用户的权限是 select ,update,delete,insert 。能更改的只有当前会话操作。全局设置会出现没有权限。

(test@xxxx) [(none)]> set global sql_safe_updates = 1;
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation
(test@10.100.108.130) [(none)]> set  sql_safe_updates = 1;
Query OK, 0 rows affected (0.00 sec)

数据安全需要规范起来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值