【网安小白成长之路】4.MySQL安全值守常用语句

🐮博主syst1m 带你 acquire knowledge!

✨博客首页——syst1m的博客💘

🔞 《网安小白成长之路(我要变成大佬😎!!)》真实小白学习历程,手把手带你一起从入门到入狱🚭

😘《CTF专栏》超级详细的解析,宝宝级教学让你从蹒跚学步到健步如飞🙈

😎《大数据专栏》大数据从0到秃头👽,从分析到决策,无所不能❕

🔥 《python面向对象(人狗大战)》突破百万的阅读量,上过各种各样的官方大型专栏,python面向对象必学之一!🐽
😋《性格荷官在线送书活动》不定期会存在有送书活动哦,大部分肯定是网安内容的书籍啦宝子们!💘

🎉希望本文能够给读者带来帮助,更好地理解这个问题或解决你的困惑🐾

前言

上一期内容我们介绍了mysql的基础用法,增删改查,这期内容主要是讲安全值守的常用语句,用户和权限的管理,一些高级的查询方法,还有数据库的导入与导出

MySQL安全值守常用语句

1.用户管理

1-1.查询用户

查询所有用户

select user,host from mysql.user;

在这里插入图片描述

1-2.增加用户

用户是由 ‘用户名’@‘ip’ 这样组成的

create user '用户名'@'ip' identified by '密码';

地址是写可以在哪些ip地址上登录

例如

添加 admin用户只能在本地ip登录,密码123456

create user 'admin'@'localhost' identified by '123456';

添加 admin666用户可以在任何ip登录,密码123456

create user 'admin666'@'%' identified by '123456';
1-3.删除用户

现在我觉得这个admin666用户可以在任何ip登录太危险了,我不想要可以使用下面的指令

drop user 'admin666'@'%';

删除用户可不是只用写用户名就够了,还需要加上它的ip地址

drop user '用户名'@'ip';

2.用户权限管理

2-1.用户权限级别介绍

MySQL的用户权限级别

级别作用
全局管理整个MySQL
管理指定的数据库
管理指定的数据库里指定的表
字段管理指定的数据库里指定的表里面的指定的字段

权限存储在 mysql 库的 user , db , tables_priv , columns_ priv , procs_ priv 这几个系统数据表中

在这里插入图片描述

2-2.查看用户的的权限

查看某个用户的权限

show grants for '用户名'@'ip';

在这里插入图片描述

2-3.添加权限

给某个用户添加某个数据库的所有权限

grant ALL PRIVILEGES on 数据库.* to '用户名'@'ip';
# 数据库.* 数据库中所有的表 也就是这个数据库
# 可以在后面加上 identified by '密码' 让使用时需要输入密码
# 还可以加上 whit option 让他也可以给别人授权

在这里插入图片描述

数据库.*可以改成数据库.test_1,弄成指定的数据表

在这里插入图片描述

2-4.权限示例
权限作用语句
ALL PRIVILEGES拥有所有权限grant ALL PRIVILEGES on 数据库.* to ‘admin’@‘ip’;
SELECT允许用户查询表中的数据grant SELECT on 数据库.* to ‘admin’@‘ip’;
INSERT允许用户向表中插入数据grant INSERT on 数据库.表 to ‘admin’@‘ip’;
UPDATE允许用户更新表中的数据grant UPDATE on 数据库.表 to ‘admin’@‘ip’;
DELETE允许用户删除表中的数据grant DELETE on 数据库.表 to ‘admin’@‘ip’;
CREATE允许用户创建新的数据库或表grant CREATE on 数据库.* to ‘admin’@‘ip’;
DROP允许用户删除数据库或表grant CREATE on 数据库.* to ‘admin’@‘ip’;
GRANT OPTION允许用户授予或撤销其他用户的权限grant CREATE on 数据库.* to ‘admin’@‘ip’;
2-5.撤销权限
revoke ALL PRIVILEGES on 数据库.* from '用户名'@'ip';

在这里插入图片描述

撤销了 ‘admin’@'localhost’在test.test_1中所有的权限

2.元数据查询

语句语句
select version();服务器当前版本
select database();当前数据库名
select user();当前用户名
show status;服务器状态
show variables;服务器配置变量
show global variables like ‘%datadir%’;看数据文件存放位置
select @@datadir;查询数据库的路径
select @@basedir;查询MySQL的安装路径

3.union联合查询

可以将多条sql语句查询的结果显示在一起,原理就将选择的数据追加到第一张表的后面

查询出的结果列名以第一个为主

select * from 表名 union select * from 表名 union ...
# union 默认会去掉重复的结果 想要显示所有的可以使用 unio all

简单的查询下三个表

在这里插入图片描述

也可以在后面追加数据

select * from test_1 union select 1,2,3;

在这里插入图片描述

后面可以写别的但是不能超过第一张表的总列数不然会报错

在这里插入图片描述

4.分组查询

可以将想要查询的分为一组

select group_concat(列名),group_concat(列名)... from 表;

在这里插入图片描述

在这里插入图片描述

select 列名1,group_concat(列名2) from 表名 group by 列名1;

将sex相同的分为一组

在这里插入图片描述

select sex,group_concat(name order by name desc SEPARATOR'❤ ') from test_3 group by sex;
# order by name desc SEPARATOR'❤ ' name里面以 ❤  隔开 
# 默认是以 , 隔开

在这里插入图片描述

5.字符串函数

select 函数;
函数作用结果
lower(column|str)将字符串全部转换为小写字母在这里插入图片描述
upper(column|str)将字符串全部转换为大写字母在这里插入图片描述
concat(column|str1,column}str2,…)将多个字符串收尾相连后在这里插入图片描述
concat_ws(separator,str1,str2,…)使用指定的字符(s)将多个字符串进行连接在这里插入图片描述
substr(str,pos,len)从字符串中的指定位置(pos)向后抓取多少长度(len)的字符在这里插入图片描述
length(str)返回字符串的存储长度在这里插入图片描述
char_length(str)返回字符串的字符个数在这里插入图片描述

6.数据库导入导出

6-1.导出

导出数据库不需要登录MySQL,直接在cmd里面输入

导出数据库

mysqldump -u root -p test>D:\mysql\test.sql

将 test 数据库导出到D盘的 mysql 文件夹

在这里插入图片描述
在这里插入图片描述

导出数据表

mysqldump -u root -p test test_1>D:\mysql\test_1.sql

将 test 数据库里的 test_1 表导出到D盘里的 mysql 文件夹

在这里插入图片描述

在这里插入图片描述

导出所有的数据库和表

mysqldump -u root -p --all-databases>D:\mysql\mysql.sql

6-2.导入

cmd导入

mysql -u root -p testnew>D:\mysql\test.sql

将 test.sql 导入到 testnew 数据库

不知道为什么使用cmd导入总是不了

msyql语句导入

use testnew;
source D:/mysql/test.sql

将 D:/mysql/test.sql 导入进 testnew 数据库中

在这里插入图片描述
在这里插入图片描述

7.总结

今天这期内容讲解的是mysql管理方面的内容,学习完这期内容后对于操作mysql这块算是学完了,这些指令还是很简单的,如果实在是记不住的话也可以再需要的时候再查找,之后用着用着就会记住了。如果你还有什么问题的记得私信我哦!

  • 30
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

syst1m'

多谢支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值