mysql触发器。mysql安全,mysql用户与权限管理。 电脑版发表于:2021/9/16 17:20 ## MySQL触发器 #### 什么是触发器: 触发器是个特殊的存储过程,不是由用户触发,是系统根据事件来触发。对表操作比如 添加,删除,修改。 也就是在进行DML操作的时候可以触发我们自己写的逻辑 #### 触发器的作用: 数据同步(数据同步更新,同步修改), 做一些数据自定义约束.....,可以根据具体业务来实现 #### 触发时间: 操作之前和操作之后,比如添加之前执行,添加之后执行,更新之前,更新之后...... 操作之前: before 触发事件 操作之后: after 触发事件 #### 触发器的NEW和OLD new涉及到新数据的时候可以使用,比如添加与更新 old涉及到旧数据的时候可以用,比如删除的时候 #### 简单例子: 添加一个insert之和的触发器。添加class表的时候向test表也添加内容。 ```sql create TRIGGER tri_insert after insert on class for each row begin insert into test values(new.Id); end ``` 加一个update之后的触发器 ``` -- 添加一个update之后的触发器。 create trigger tri_update after update on class for each row begin insert into test values(old.Id); end ``` ## MySQL用户管理 **系统所有的用户,默认是在mysql数据库下的user表中的,查询用户如下:** select * from user **创建用户与删除用户** %表示所有ip地址可以访问,localhost表示只能本地访问 ``` -- 创建用户 create user 'aj'@'%' identified by '123456' -- 删除用户 drop user 'aj'@'localhost' ``` **修改用户密码:** mysql_native_password可以省略 ``` alter user 'aj'@'%' identified with mysql_native_password by '123' ``` ## MySQL权限管理 #### 查询用户的权限: ``` Show grants for ‘用户名’@’主机名’ ``` #### 授权: ``` Grant 权限 on 数据库.表 to ‘用户名’@’主机名’ ``` #### 撤销权限: ``` revoke 权限 on 数据库.表 from ‘用户名’@’主机名’ ``` #### 实例: ``` -- 查询权限 show grants for 'aj'@'%' -- 授予权限 grant all on oa1212.* to 'aj'@'%' --撤销权限 revoke all on oa1212.* from 'aj'@'%' ```