🐮博主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 数据库中
文章来源:https://www.toymoban.com/news/detail-848830.html
7.总结
今天这期内容讲解的是mysql管理方面的内容,学习完这期内容后对于操作mysql这块算是学完了,这些指令还是很简单的,如果实在是记不住的话也可以再需要的时候再查找,之后用着用着就会记住了。如果你还有什么问题的记得私信我哦!文章来源地址https://www.toymoban.com/news/detail-848830.html
到了这里,关于【网安小白成长之路】4.MySQL安全值守常用语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!