当前位置: 首页 > wzjs >正文

男女直接做那个视频网站网络营销工具有哪些?

男女直接做那个视频网站,网络营销工具有哪些?,php网站建设程序,网站的推广方式包括审计及触发器 学习内容学习感受 学习内容 一、实验目的与要求: 1.了解MySQL审计功能及实现方式 2.掌握触发器的工作原理、定义及操作方法 二、实验内容: 注: (1) 在同一个触发器内编写多行代码,需要用结构…

审计及触发器

  • 学习内容
  • 学习感受

学习内容

一、实验目的与要求:
1.了解MySQL审计功能及实现方式
2.掌握触发器的工作原理、定义及操作方法

二、实验内容:
注:
(1) 在同一个触发器内编写多行代码,需要用结构begin ……end
(2) 函数current_user()获得当前登录用户名
1.自动保存对所有表(至少fruits表和orderitems表)的插入、更新、删除操作到opertaion表中。
①增加opertaion表
在这里插入图片描述

源码:

CREATE TABLE opertaion(id INT(11) NOT NULL UNIQUE AUTO_INCREMENT,tablename VARCHAR(50) NOT NULL,opname VARCHAR(50) NOT NULL,optime DATETIME NOT NULL,ConnUser VARCHAR(30) NOT NULL,PRIMARY KEY(id)
);

②创建基于fruits表和orderitems表的插入、更新、删除触发器,该类触发器的功能是在执行相关操作时把操作相关信息写入opertaion表中。例如在fruits表中成功插入一项新的元组后,在opertaion表中自动增加一个元组,该元组描述了是对fruits表进行了插入操作。
源码:

--插入fruits表的触发器
CREATE TRIGGER insert_f AFTER INSERT ON fruits FOR EACH ROW
BEGININSERT INTO opertaion(tablename,opname,optime,ConnUser) VALUES ('fruits','insert',NOW(),USER());
END;--更新fruits 表的触发器
CREATE TRIGGER update_f AFTER UPDATE ON fruits FOR EACH ROW
BEGININSERT INTO opertaion(tablename, opname, optime, ConnUser) VALUES ('fruits', 'update', NOW(),USER());
END;--删除fruits 表的触发器
CREATE TRIGGER delete_f AFTER DELETE ON fruits FOR EACH ROW
BEGININSERT INTO opertaion(tablename,opname,optime,ConnUser)VALUES ('fruits','delete',NOW(),USER());
END;--插入 orderitems 表的触发器
CREATE TRIGGER insert_oi AFTER INSERT ON orderitems FOR EACH ROW
BEGININSERT INTO opertaion(tablename,opname,optime,ConnUser)VALUES ('orderitems','insert',NOW(),USER());
END;--更新orderitems 表的触发器
CREATE TRIGGER update_oi AFTER UPDATE ON orderitems FOR EACH ROW
BEGININSERT INTO opertaion(tablename,opname,optime,ConnUser)VALUES ('orderitems','update',NOW(),USER());
END;--删除orderitems 表的触发器
CREATE TRIGGER delete_oi AFTER DELETE ON orderitems FOR EACH ROW
BEGININSERT INTO opertaion(tablename,opname,optime,ConnUser)VALUES ('orderitems','delete',NOW(),USER());
END;

③测试:用B001帐号(即销售人员帐号)登录,在fruits表中插入一条水果信息,再查看opertaion表是否实现自动添加更新记录。
运行测试结果截图:
–登录账号

mysql -uB001 -p123456

–进行操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.实现自动更新fruits表中商品数量
①在fruits表中增加一个属性quantity(库存商品数量) ,数据类型int(5),默认值为1000
源码:

ALTER TABLE fruits ADD quantity INT(5) DEFAULT (1000);

运行测试结果截图:
在这里插入图片描述

②创建触发器实现当客户下订单后,fruits表对应此商品的数量自动的发生变化(减少或增加):
具体要求:
(1)在orderitems表中修改某个订单的商品数量后时, fruits表对应此商品的数量发生相应的改变。
(2)在orderitems表中增加一个购买详单(增加一个元组)时, fruits表对应此商品的数量发生相应的改变。
源码:

--修改订单数量
CREATE TRIGGER update_q AFTER UPDATE ON orderitems FOR EACH ROW
BEGINUPDATE fruits SET quantity=quantity+old.quantity-new.quantityWHERE f_id=new.f_id;
END;--增加一个购买订单
CREATE TRIGGER insert_q AFTER INSERT ON orderitems FOR EACH ROW
BEGINUPDATE fruits SET quantity=quantity-new.quantityWHERE f_id=new.f_id;
END;--测试数据
--修改订单数量
UPDATE orderitems SET quantity=50 WHERE f_id='a1';
--增加购买订单
INSERT INTO orderitems VALUES(50001,4,'x1',200,8.80);

运行测试结果截图:
修改前
在这里插入图片描述
在这里插入图片描述
修改后

在这里插入图片描述

3.(可选做)用Mysql8审计功能实现保存非root用户的更新操作( binlog + init-connect ):
1)创建审计数据库auditdb及表accesslog;
源码:

CREATE DATABASE auditdb;
use auditdb;CREATE TABLE accesslog (ID int(11) NOT NULL AUTO_INCREMENT,ServerID int(11) DEFAULT NULL,ConnectionID int(11) DEFAULT NULL,ConnUser varchar(30) DEFAULT NULL,MatchUser varchar(30) DEFAULT NULL,LoginTime datetime DEFAULT NULL,PRIMARY KEY (ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

2)为普通用户赋予写入表’accesslog’权限(每个非Root用户都要先授权,否则无法与数据库建立连接);
源码:

GRANT INSERT ON auditdb.accesslog TO 'B001'@'%';
FLUSH PRIVILEGES;

3)配置init-connect,用于当普通用户对目标数据库进行操作时自动写入审记表中,在my.ini(Linux系统下是my.cnf)中配置;
源码:
以管理员的身份打开C:\ProgramData\MySQL\MySQL Server 8.0\my.ini文件,在[mysqld]区域添加内容:init-connect=‘INSERT INTO auditdb.accesslog(ServerID, ConnectionID ,ConnUser ,MatchUser ,LoginTime) VALUES(@@server_id, CONNECTION_ID(), USER(), CURRENT_USER(), NOW());’
在这里插入图片描述

  1. 开启mysql-binlog日志记录,在my.ini中配置:
# 开启二进制日志
log-bin=mysql-bin# 设置日志文件的最大大小
max_binlog_size = 300m# 设置二进制日志文件的过期时间(单位:天)
expire_logs_days = 20

在这里插入图片描述

5)重启mysql
源码:

net stop mysql80
net start mysql80

测试效果截图:
在这里插入图片描述
在这里插入图片描述

三、实验小结
1.实验中遇到的问题及解决过程
问题:在orderitems表中修改某个订单的商品数量后时, fruits表对应此商品的数量发生相应的改变,不能对新旧数据进行判断后正确执行。
解决过程:触发器经过判断,新旧字段值不一样,因此调用UPDATE fruits SET quantity=quantity+old.quantity-new.quantity where f_id=new.f_id。

2.实验中产生的错误及原因分析
错误:在通过B001账号登录时,在fruits表中插入一条水果信息,查看opertaion表是自动添加更新记录的ConnUser为root@localhost而不是B001。
原因分析:在MySQL中,CURRENT_USER()函数返回的是当前连接的用户名,而不是执行SQL语句的用户。在创建触发器时,此时的CURRENT_USER()返回的是root@localhost,因为执行这个触发器的账号是root。如果想让ConnUser字段显示插入记录的用户,可以使用USER()。

学习感受

通过本次实验,我深入学习了MySQL中触发器(Trigger)和数据库审计的相关知识,并通过动手实践掌握了触发器的创建、应用以及数据库审计的基本实现方法。
首先,在操作fruits表和orderitems表的插入、更新和删除操作中,利用触发器自动将操作信息记录到opertaion表中,让我对触发器的基本语法结构(如 AFTER INSERT/UPDATE/DELETE、FOR EACH ROW、BEGIN … END 等)有了更全面的理解。此外,我也掌握了USER() 和 CURRENT_USER() 两个函数的区别,了解到USER()更适合记录当前执行操作的实际用户,而CURRENT_USER()则表示触发器定义者的身份,这对于审计场景尤为重要。
其次,在自动更新库存数量的部分,通过触发器实现了在修改订单时同步更新fruits表中的quantity字段,这让我更加清晰地理解了OLD和NEW关键字的用法,即在触发器中获取被修改记录的旧值和新值。这部分内容不仅锻炼了我对数据逻辑的理解能力,也提升了我处理数据一致性的思维方式。
最后,了解了通过配置 init-connect 和 binlog 的方式,实现对非Root用户操作的审计记录,这让我进一步认识到数据库系统在安全性与可追溯性方面的设计。
本次实验让我深刻认识到触发器在数据库管理中的重要作用,它不仅可以简化应用层逻辑,还可以提升数据库操作的自动化和安全性。同时,也让我体会到调试触发器和分析操作日志的重要性和挑战性,为我今后在数据库安全与事务处理方面的学习打下了良好的基础。


文章转载自:

http://nkW5zYF1.Lrzst.cn
http://1Dyk0QRa.Lrzst.cn
http://uBc6aNIn.Lrzst.cn
http://5Ls49OFX.Lrzst.cn
http://WtE8SUko.Lrzst.cn
http://w0epnysf.Lrzst.cn
http://2HugH8Ck.Lrzst.cn
http://uJTWKVmi.Lrzst.cn
http://t5FvZoKx.Lrzst.cn
http://kdtmsDzh.Lrzst.cn
http://MHFXCsuG.Lrzst.cn
http://VOmNVPKp.Lrzst.cn
http://AgWryyv2.Lrzst.cn
http://bWNsMqL6.Lrzst.cn
http://ojQvqDTh.Lrzst.cn
http://SxvwYIxT.Lrzst.cn
http://qOh6SevX.Lrzst.cn
http://PuLpvJAg.Lrzst.cn
http://VSBXaNOy.Lrzst.cn
http://GwJvFtah.Lrzst.cn
http://pEG3c5hB.Lrzst.cn
http://ygJguOFl.Lrzst.cn
http://TkCxPNaK.Lrzst.cn
http://XuiiViXb.Lrzst.cn
http://mHDzP0Lk.Lrzst.cn
http://XMCTTLKv.Lrzst.cn
http://KkG89Rrg.Lrzst.cn
http://ANkkFpVb.Lrzst.cn
http://lJcZPgyG.Lrzst.cn
http://JKt81xCf.Lrzst.cn
http://www.dtcms.com/wzjs/704425.html

相关文章:

  • 个人房源网谷歌外贸网站seo怎么做
  • 产品展示类网站源码品牌网站建站公司
  • 装修网名搜狗seo软件
  • 珠海新盈科技 网站建设做网站怎样建立服务器
  • 德州建网站宜昌怎样优化网站建设
  • 杭州模板做网站用asp做的大型网站
  • 手机网站的好外太原网站优化常识
  • 长沙企业网站优化wordpress 使用两个主题
  • 成都网站建设学习oa系统入口
  • 学做网站 书页面设计要怎么做
  • 福州 网站建设搜索引擎下载安装
  • 狠狠做网站改成什么了福州营销型网站建设公司
  • 网站推广公司成功的经典案例做网站最大的公司
  • wordpress主题网站模板wordpress主题的使用
  • 凡科建站下载wordpress 文章转繁体
  • 二类电商用网站怎么做H5页面个人微网站怎么做
  • 网站建设项目经验泊头网站建设公司
  • 期末成绩怎么做网站cc wordpress
  • 工装公司十大排名网站优化推广方法
  • 深圳市建设管理中心网站潍坊可以做网站的公司
  • 小企网站建设解决方案南充城市建设投诉网站
  • 网站排名推广自己怎么做微信微网站制作
  • 网站做一半能退吗有哪些做农产品的网站有哪些
  • 微信与网站对接长沙市人才招聘网最新招聘信息
  • 个人网站可以放广告吗南京网站建设方案
  • 网站开发协议范本开发app制作公司
  • 网站在国内服务器在国外免费网页app一键生成软件
  • 分类信息网站开发网络培训平台有哪些
  • 酷站素材wordpress 漏洞 利用
  • wordpress 不能查看站点公众号里原文单发到dede网站上