您现在的位置是:首页 >技术教程 >MySQL:触发器、权限管理网站首页技术教程
MySQL:触发器、权限管理
简介MySQL:触发器、权限管理
一、学习目标
- 了解什么是触发器
- 掌握创建触发器的方法
- 掌握查看触发器的方法
- 掌握触发器的使用技巧
- 掌握删除触发器的方法
- 熟练掌握使用触发器的方法和技巧
- 了解什么是权限表
- 掌握权限表的用法
- 掌握账户管理的方法
- 掌握权限管理的方法
- 掌握访问控制的方法
- 熟练掌握新建用户的方法和技巧
- 了解什么是数据备份
- 掌握各种数据备份的方法
- 掌握各种数据恢复的方法
- 掌握数据库迁移的方法
- 掌握表的导入和导出方法
- 熟练掌握数据备份与恢复的方法和技巧
二、实验内容
- 掌握触发器的创建和调用方法
下面是创建触发器的实例,每更新一次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 FilesMySQLMySQL Server 8.0in
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 FilesMySQLMySQL Server 8.0in
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 FilesMySQLMySQL Server 8.0in
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;
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。