MySQL:触发器、权限管理

news2024/10/2 3:18:48

一、学习目标

  1. 了解什么是触发器
  2. 掌握创建触发器的方法
  3. 掌握查看触发器的方法
  4. 掌握触发器的使用技巧
  5. 掌握删除触发器的方法
  6. 熟练掌握使用触发器的方法和技巧
  7. 了解什么是权限表
  8. 掌握权限表的用法
  9. 掌握账户管理的方法
  10. 掌握权限管理的方法
  11. 掌握访问控制的方法
  12. 熟练掌握新建用户的方法和技巧
  13. 了解什么是数据备份
  14. 掌握各种数据备份的方法
  15. 掌握各种数据恢复的方法
  16. 掌握数据库迁移的方法
  17. 掌握表的导入和导出方法
  18. 熟练掌握数据备份与恢复的方法和技巧

二、实验内容

  1. 掌握触发器的创建和调用方法

下面是创建触发器的实例,每更新一次persons表的num字段后都要更新sales表对应的sum字段。其中,persons表结构、sales表结构以及persons表结构的内容如下所示,按照后面的具体要求完成操作。

persons表结构

字段名

数据类型

主键

外键

非空

唯一

自增

name

varchar(40)

num

int

sales表结构

字段名

数据类型

主键

外键

非空

唯一

自增

name

varchar(40)

num

int

persons表结构

name

num

xiaoming

20

xiaojun

69

步骤如下:

①创建一个业务统计表persons

②创建一个销售额表sales

③创建一个触发器

④向persons表中插入记录

2.掌握创建用户和授权的方法。步骤如下:

①打开MySQL客户端工具,输入登录命令,登录MySQL

②选择MySQL数据库为当前数据库

③创建新账户,用户名称为newAdmin,密码为pw123

④分别从user表中查看新账户的账户信息

⑤使用SHOW GRANTS语句查看newAdmin的权限信息

⑥使用newAdmin用户登录MySQL

⑦使用newAdmin用户查看test_db数据库中person表中的数据

⑧使用newAdmin用户向person表中插入一条新记录,查看语句执行结果

⑨退出当前登录,使用root用户重新登录,收回newAdmin账户的权限

⑩删除newAdmin的账户信息

1.1-1.2

 create table persons(name varchar(40) not null,num int not null);
 create table sales(name varchar(40) not null,num int not null);

 1.3-1.4

create trigger per_sales
after insert on persons
for each row
insert into sales values(new.name,new.num);




insert into persons(name,num)values('xiaoming',20),('xiaojun',69);

 2.1-2.4

CD C:\Program Files\MySQL\MySQL Server 8.0\bin

mysql -h localhost -u root -p

use MySQL

create user 'newAdmin' identified by 'pw123';

select user from user;
select * from user where user='newAdmin';

2.5 

show grants for newAdmin;

2.6 

update user set  
Select_priv = 'Y',
Insert_priv= 'Y',
Update_priv = 'Y',
Delete_priv = 'Y',
Create_priv = 'Y',
Drop_priv= 'Y',
Reload_priv = 'Y',
Shutdown_priv = 'Y',
Process_priv = 'Y',
File_priv = 'Y',
Grant_priv= 'Y',
References_priv = 'Y',
Index_priv = 'Y',
Alter_priv= 'Y',
Show_db_priv = 'Y',
Super_priv = 'Y',
Create_tmp_table_priv= 'Y',
Lock_tables_priv = 'Y',
Execute_priv= 'Y',
Repl_slave_priv = 'Y',
Repl_client_priv = 'Y',
Create_view_priv = 'Y',
Show_view_priv = 'Y',
Create_routine_priv= 'Y',
Alter_routine_priv = 'Y',
Create_user_priv = 'Y',
Event_priv = 'Y',
Trigger_priv = 'Y',
Create_tablespace_priv= 'Y'
 where user='newAdmin';
/*在root登录时给予newAdmin账户权限,以便于进行后续操作*/
exit;

CD C:\Program Files\MySQL\MySQL Server 8.0\bin
mysql -h localhost -u newAdmin -p
/*输入密码*/

 

 2.7

select * from test_db.persons;

 2.8

use test_db; 
insert into persons(name,num)values('sundayong',35);

 2.9

exit;

CD C:\Program Files\MySQL\MySQL Server 8.0\bin

mysql -h localhost -u root -p

2.10

use MySQL;

update user set  
  Select_priv = 'N',
  Insert_priv= 'N',
  Update_priv = 'N',
  Delete_priv = 'N',
  Create_priv = 'N',
  Drop_priv= 'N',
  Reload_priv = 'N',
  Shutdown_priv = 'N',
  Process_priv = 'N',
  File_priv = 'N',
  Grant_priv= 'N',
  References_priv = 'N',
  Index_priv = 'N',
  Alter_priv= 'N',
  Show_db_priv = 'N',
  Super_priv = 'N',
  Create_tmp_table_priv= 'N',
  Lock_tables_priv = 'N',
  Execute_priv= 'N',
  Repl_slave_priv = 'N',
  Repl_client_priv = 'N',
  Create_view_priv = 'N',
  Show_view_priv = 'N',
 Create_routine_priv= 'N',
  Alter_routine_priv = 'N',
  Create_user_priv = 'N',
  Event_priv = 'N',
  Trigger_priv = 'N',
  Create_tablespace_priv= 'N'
 where user='newAdmin';

drop user newAdmin;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/544755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小程序加weui或者TDesign安装

WeUI样式库展示:https://weui.io/ 微信官方WeUI相关文档:https://wechat-miniprogram.github.io/weui/docs/ WeUI-wxss 项目地址:https://github.com/Tencent/weui-wxss 安装 ,1.先安装node.js 2.建立或者打开已经有的项目。…

【SolVES 模型】生态系统服务功能社会价值评估(基于多源环境QGIS、PostgreSQL、ArcGIS、Maxent、R语言)

SolVES模型(Social Values for Ecosystem Services)全称为生态系统服务社会价值模型,是由美国地质勘探局和美国科罗拉多州立大学联合开发的一款地理信息系统应用程序,开发该模型的目的主要是对生态系统服务功能中的社会价值进行空…

敏捷与瀑布:哪种项目管理方法适合你的企业?

​良好的项目管理可以改变企业的工作流,在减少混乱因素的同时注入方向和组织性。 同时,"项目管理 "对每个人来说并不意味着完全相同的事情。在企业及其客户中,最重要的两种项目管理方法是敏捷和瀑布。而这两种风格之间的差异很大&…

Redis是单线程还是多线程?揭开性能之谜!

大家好,我是小米,在这个充满技术乐趣的小天地里,今天我们来探讨一个备受争议的话题——Redis是单线程还是多线程?这个问题一直困扰着Redis的用户,让我们一起揭开性能之谜吧! Redis作为一款高性能键值存储系…

交换机故障恢复

通常情况下,可以为交换机设置enable密码来提供安全,在没有enable密码的情况下,无法对交换机修改任何配置,因此,在忘记enable密码的时候,就意味着无法改动交换机信息。但是,如果能够物理上接触到…

实施办公自动化系统需要注意什么?

办公自动化系统的好处很容易理解。几乎每个企业都会欢迎更高的准确性、效率和利润率。办公自动化这个过程似乎势不可挡,那么该如何实现和管理呢? 决定自动化的内容 在实施办公自动化系统之前,企业将需要花时间研究哪些具体的流程需要自动化…

Go语言核心编程-基本数据类型篇

第 3 章 Golang 变量 3.1 为什么需要变量 3.1.1一个程序就是一个世界 3.1.2变量是程序的基本组成单位 不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位,比如一个示意图: func getVal(numl int, num2 int) (int, int) {sum : num1 n…

【数字敏捷性】上海道宁与​SolarWinds为您提供全面的可观察性、IT 服务管理和数据库管理

SolarWinds Platform是 业界先进的统一监控 可观察性和服务管理平台 它是新一代SolarWinds 可观察性解决方案的基础 并提供了我们如何 为客户解决可观察性挑战的架构 网络管理工具 从配置和流量智能到 性能监控和拓扑映射 可以轻松查看、理解和解决问题 一种集成的多…

【数据结构】--单链表力扣面试题②反转链表

目录 法一:直接反转法 法二:头插法 题述:给你单链表的头结点head,请你反转链表,并返回反转后的链表。 题目已知链表创建,并给了reverseList的函数头。 struct ListNode* reverseList(struct ListNode* he…

Maven属性与版本管理

文章目录 1 属性1.1 问题分析1.2 解决步骤步骤1:父工程中定义属性步骤2:修改依赖的version 2 配置文件加载属性步骤1:父工程定义属性步骤2:jdbc.properties文件中引用属性步骤3:设置maven过滤文件范围步骤4:测试是否生效 3 版本管理 在这一章节内容中,我们将学习两个…

ROS学习(1)——ROS1和ROS2的区别

因为机器人是一个系统工程,它包括了机械臂结构,电子电路,驱动程序,通信框架,组装集成,调试和各种感知决策算法等方面,任何一个人甚至是一个公司都不可能完成机器人系统的研发工作 。但是我们又希…

【黑科技】基于GPT开发的4款免费AI办公神器,实用又强悍!

今天给大家推荐4个非常实用且非常强悍的工具,基于GPT开发的AI工具 ,每一款都能够大大提升我们的学习和工作效率 ,希望你能看到并在收藏的同时点个赞或关注,万分感谢 。 Chat2doc 这是一个对学生党和打工人都特别有用的AI工具 &a…

西米支付:数字人民币常识普及

1.1 什么是数字人民币? 数字人民币 (英文简称: e-CNY) 是由人民银行发行的数字形式的法定货币 ,由指定 运营机构参与运营 ,以广义账户体系为基础 ,支持银行账户松耦合功能 (意味着用户既可 以选择将数字人民币钱包与自…

GstOverlay 绑定多个gtk 窗口

主题说明 在spice stream 模式下,为了实现流畅的显示,利用gstvideooverlay 接口实现了gstreamer pipeline 的输出直接绑定到gtk 的窗口下。 然而spice客户端采用的是playbin 插件当前只能绑定一个窗口,当需要采用多窗口模式时,当…

VMware安装win10虚拟机教程及常见问题

win10虚拟机安装教程 一、前言 1. 准备VMware虚拟机(可自行到VMware官网 或 点击链接 下载正版VMware Workstation Pro)。 2. 准备需要安装的win10镜像,下载地址:下载 Windows 10。 3. 文章不一定合适每位安装虚拟机的人&#x…

代理模式及对startActivity的Hook应用

定义 简而言之,就是让代理类和目标类(被代理类)实现同一个接口,并让代理类持有一个目标类的对象,这样对代理类的访问,可以转移到目标类的访问中去。我们可以在不修改目标类的情况下,在代理类中实…

Cesium源码分享--标绘

Cesium标绘插件 在线api文档说明 在线体验地址1(三维框架内) 在线体验地址2 更多案例地址 免费gis数据 ps:如果可以的话,希望大家能给我个star,好让我有更新下去的动力; 实现原理: 其中实…

RSS订阅无需代码连接飞书自建的方法

RSS订阅用户使用场景: 公司为倡导员工阅读文化以及提高自身素质,通过RSS订阅一些书籍,然后由相关部分负责人每日推送到部门群,便员工们能够随时获取到最新的读书消息。但负责人时常会忘记,且人工手动复制粘贴多项信息比…

使用底层代码(无框架)实现卷积神经网络理解CNN逻辑

首先将数据集放入和底下代码同一目录中,然后导入一些相关函数的文件cnn_utils.py: import math import numpy as np import h5py import matplotlib.pyplot as plt import tensorflow as tf from tensorflow.python.framework import ops def load_data…

Win10搭建Docker Desktop并安装vim

Win10搭建Docker Desktop 1 介绍 Docker Desktop是适用于Windows的Docker桌面,是Docker设计用于在Windows 10上运行。它是一个本地 Windows 应用程序,为构建、交付和运行dockerized应用程序提供易于使用的开发环境。Docker Desktop for Windows 使用 Wi…