MySQL:触发器、权限管理

一、学习目标

  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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淬炼之火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值