MySQL数据库安全之防止撰改的方法

 更新时间:2014年07月05日 17:09:19   投稿:shichen2014  
这篇文章主要介绍了MySQL数据库防止撰改的方法,需要的朋友可以参考下

MySQL数据库可以通过触发器,使之无法修改某些字段的数据,同时又不会影响修改其他字段。

DROP TRIGGER IF EXISTS `members`;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='';
DELIMITER //
CREATE TRIGGER `members` BEFORE UPDATE ON `members` FOR EACH ROW BEGIN
 set new.name  = old.name;
 set new.cellphone = old.cellphone;
 set new.email  = old.email;
  set new.password = old.password;
END//
DELIMITER ;
SET SQL_MODE=@OLD_SQL_MODE;

再举一个例子:

CREATE TABLE `account` (
 `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 `user` VARCHAR(50) NOT NULL DEFAULT '0',
 `cash` FLOAT NOT NULL DEFAULT '0',
 PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

每一次数据变化新增一条数据

INSERT INTO `test`.`account` (`user`, `cash`) VALUES ('neo', -10);
INSERT INTO `test`.`account` (`user`, `cash`) VALUES ('neo', -5);
INSERT INTO `test`.`account` (`user`, `cash`) VALUES ('neo', 30);
INSERT INTO `test`.`account` (`user`, `cash`) VALUES ('neo', -20);

保护用户的余额不被修改

DROP TRIGGER IF EXISTS `account`;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='';
DELIMITER //
CREATE TRIGGER `account` BEFORE UPDATE ON `account` FOR EACH ROW BEGIN
 set new.cash  = old.cash;
END//
DELIMITER ;
SET SQL_MODE=@OLD_SQL_MODE;

相关文章

  • MySQL 添加注释(comment)的方法步骤

    MySQL 添加注释(comment)的方法步骤

    本文主要介绍了MySQL添加注释(comment)的方法步骤,字段或列的注释是用属性comment来添加,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • Linux下安装mysql的教程详解

    Linux下安装mysql的教程详解

    这篇文章主要介绍了Linux下安装mysql的教程详解,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • mysql常用命令行操作语句

    mysql常用命令行操作语句

    MySQL很早以前只能采用DOS式界面,后来虽然硬件支持图形界面(平常的软件操作界面),但是命令行界面(就是DOS界面)以它 简单,高效,方便 的特色而被保留下来。这就是用DOS界面的原因。
    2016-05-05
  • 详解MYSQL中重命名procedure的一种方法

    详解MYSQL中重命名procedure的一种方法

    这篇文章主要介绍了MYSQL中重命名procedure的一种方法,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05
  • MYSQL 常用语句速查(最新整理)

    MYSQL 常用语句速查(最新整理)

    这篇文章主要介绍了MYSQL 常用语句速查,包括库级操作、表级操作、字段级操作和数据级操作,需要的朋友可以参考下
    2024-12-12
  • MySQL 8.0.19支持输入3次错误密码锁定账户功能(例子)

    MySQL 8.0.19支持输入3次错误密码锁定账户功能(例子)

    这篇文章主要介绍了MySQL 8.0.19支持输入3次错误密码锁定账户功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • MySQL如何创建触发器

    MySQL如何创建触发器

    这篇文章主要为大家详细介绍了MySQL如何创建触发器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • 详解MySQL事务的隔离级别与MVCC

    详解MySQL事务的隔离级别与MVCC

    这篇文章主要介绍了MySQL事务的隔离级别与MVCC的相关资料,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下
    2021-04-04
  • MySQL命令行导出导入数据库实例详解

    MySQL命令行导出导入数据库实例详解

    这篇文章主要介绍了MySQL命令行导出导入数据库实例详解的相关资料,需要的朋友可以参考下
    2016-10-10
  • mysql如何修改表中某个数据

    mysql如何修改表中某个数据

    这篇文章主要介绍了mysql如何修改表中某个数据的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08

最新评论