我是靠谱客的博主 坚强项链,最近开发中收集的这篇文章主要介绍【MySQL必知必会】触发器 | 权限管理触发器权限管理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 触发器
    • 触发器的操作
    • 触发器的优缺点
  • 权限管理
    • 角色
    • 用户
    • 小结

触发器

对于数据进行手动操作的话,很容易会忘记其中的一步, 导致数据丢失。

触发器的操作

-- 创建语法
CREATE TRIGGER 触发器名称 {BEFORE|AFTER} {INSERT|UPDATE|DELETE} 
ON 表名 
FOR EACH ROW 表达式;
  • 表名:表示触发器监控的对象。
  • INSERT|UPDATE|DELETE:表示触发的事件。INSERT 表示插入记录时触发;UPDATE 表示更新记录时触发;DELETE 表示删除记录时触发。
  • BEFORE|AFTER:表示触发的时间。BEFORE 表示在事件之前触发;AFTER 表示在事件 之后触发。
 -- 查看触发器
SHOW TRIGGERS G;

-- 删除触发器
drop trigger 触发器名称;

在这里插入图片描述
在这里插入图片描述

  • 如果触发器执行的时候,语句出现错误 ,那么它就不会执行.

触发器的优缺点

优点

  • 触发器可以确保数据的完整性, 数据就是一致的,不会互相矛盾.
  • 触发器可以帮助我们记录操作日志
  • 触发器还可以用在操作数据前,对数据进行合法性检查。
    缺点
  • 触发器最大的一个问题就是可读性差,如果发生错误,它的报错信息特别难找,和普通的基本类似,维护成本高,解决方法就是维护一个完整的数据库设计文档。

权限管理

  • 用户 : 工作人员 角色 :权限分配的一个集合
  • 恰当的权限设定,可以确保数据的安全性,这是至关重要的。

角色

  • 角色是在 MySQL 8.0 中引入的新功能,相当于一个权限的集合。引入角色的目的是方便管 理拥有相同权限的用户。
  • 创建角色之后,默认这个角色是没有任何权限的,我们需要给角色授权。
-- 创建角色   角色名 用单引号括起来
create role role_id
CREATE ROLE 'manager'@'localhost';  
-- 角色名称是“manager”,角色可以登录的主机 是“localhost”
-- 如果不写主机名,MySQL 默认是通配符“%”,意思是这个账号可以从任何一台主机上登 录数据库。

-- 给角色授权
grant 权限 on 表名 to 角色名;   
select 只读   
select,insert,delete,update 增删改查

-- 查看角色权限
show grant for 角色名字;

-- 删除角色
drop role 角色id;

-- 激活角色
set global  activate_all_roles_on_login=ON;
  • MySQL 中创建了 角色之后,默认都是没有被激活的,需要激活后才可以赋值给用户。

在这里插入图片描述

用户

-- 创建用户  必须要指定密码
CREATE USER 用户名 [IDENTIFIED BY 密码];

-- 给用户授权
grant role_id to user_id;  -- 可以把上面创建角色的权限 分配给用户
grant 权限 on 表名 to user_id; -- 直接赋权

-- 查看用户权限
show grant for user_id;

-- 删除用户 
drop user user_id;

在这里插入图片描述

小结

  • 角色是权限的集合。 删除 了角色,那么用户也就失去了通过这个角色所获得的所有权限
  • 角色在刚刚创建出来的时候,默认是没有激活的,需要手动激活,才可以 使用。
  • 尽量使用数据库自己的角色和用户机制 来控制访问权限,不要轻易用 Root 账号。

最后

以上就是坚强项链为你收集整理的【MySQL必知必会】触发器 | 权限管理触发器权限管理的全部内容,希望文章能够帮你解决【MySQL必知必会】触发器 | 权限管理触发器权限管理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部