数据库系统表相关学习

mysql一般再安装成功后,会再初始化时候创建几个库:

information_schema、mysql、peformance_schema、sys、和test。

information_schema:

information_schema数据库是MySQL自带的。

其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。
information_schema数据库表说明:

关键系统表:

SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。

TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。

COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。

STATISTICS表:提供了关于表索引的信息。是show index from schemaname.tablename的结果取之此表。

USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。该信息源自mysql.user授权表。是非标准表。

SCHEMA_PRIVILEGES(方案权限)表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。是非标准表。
 

mysql:

这个是mysql的核心数据库,类似于sql server中的master表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。

关键系统表:

user:用户列、权限列、安全列、资源控制列的信息


test:

这个是安装时候创建的一个测试数据库,和它的名字一样,是一个完全的空数据库,没有任何表,可以删除。

如何利用系统表获取mysql种的库表列数据和用户信息

查库:

use information_schema;连接库

select * from schemata;查库

查表

select * from tables;
select * from tables limit 0,1;
select * from tables where table_schema='schema_name';

查列

select * from columns where table_name='users';

查数据

select * from dvwa.users;

查用户

select * from user_privileges;
select * from user_privileges where grantee="'root'@'localhost'";
select * from mysql.user;

插入数据

# 正常插入数据 INSERT INTO department(dpt_name,people_num) VALUES('dpt1',11);

#插入新的数据,people_num 为空,使用默认值 INSERT INTO department(dpt_name) VALUES('dpt2');

删除数据

SELECT语句详解:

SELECT 语句的基本格式:

SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;

查看employee表的name和age列数据

如果需要查找所有列的数据就用*代表列名

WHERE限制条件,用于达到更加精确的查询

WHERE限制条件可以有数学符号 (=,<,>,>=,<=)

筛选出age大于25的结果:

查找一个名字为Mary的员工的name,age和phone:

SELECT name,age,phone FROM employee WHERE name='Mary';

WHERE后面可以有不止一条限制

OR或者AND

#筛选出 age 大于 25,且 age 小于 30

SELECT name,age FROM employee WHERE age>25 AND age<30;

包含25和30这两个数,可以替换为age BETWEEN 25 AND 30;

通配符:

关键字 LIKE 可用于实现模糊查询,常见于搜索功能中。

和 LIKE 联用的通常还有通配符,代表未知字符。SQL中的通配符是 _ 和 % 。其中 _ 代表一个未指定字符,% 代表不定个未指定字符

比如,要只记得电话号码前四位数为1101,而后两位忘记了,则可以用两个 _ 通配符代替:

查找出了 1101开头的6位数电话号码

SELECT name,age,phone FROM employee WHERE name LIKE 'J%';

只记名字的首字母,又不知道名字长度,则用 % 通配符代替不定个字符:

SELECT name,age,phone FROM employee WHERE name LIKE 'J%';

如何利用数据库的功能读写文件

总结下mysql在不同版本读取文件方法大致有这3个:

1、load_file

2、load data infile

3、system cat

load_file

条件:

(1)文件权限和大小:当前权限对该文件可读、文件大小小于max_allowed_packet。
(2)用户权限:当前数据库用户有FILE权限
(3)可操作路径:查看secure_file_priv,如果值为某目录,那么就只能对该目录的文件进行操作
secure_file_priv是用来限制load_file、load data和select sql outfile操作哪个指定目录。
secure_file_priv的值为null,表示限制mysql不允许导入/导出
secure_file_priv的值为具体目录,表示限制mysql的导入/导出只能发生该目录下
secure_file_priv没有具体值时,表示不对mysql的导入/导出做限制

load_file()和load data infile读取文件的方法为:新建一个表,读取文件为字符串形式插入表中,然后读出表中数据。

但是通常情况下有两个前提:

1.在拥有file权限的前提下

2.secure_file_priv不为NULL

secure_file_priv的值可以在这样查看

演示:目标/etc/passwd

查看当前用户权限

查看可操作路径

1.load_file()
create database test;
use test;
create table user(data text);
insert into user(data) values(load_file('/etc/passwd'));

读取失败

修改配置

重新启动服务

现在有权限了

2、load data infile

条件:

文件权限【读或写】
用户权限【file】
可操作路径【secure_file_priv】

演示:
load data infile '/etc/passwd' into table user;

3、

select sql outfile

条件

写入路径权限【写】
用户权限【file】
可操作路径【secure_file_priv】

演示:

select '<?php phpinfo();?>' into outfile "/tmp/data.php";
select '<?php phpinfo();?>' into outfile "/var/www/html/data.php"

如何查找数据库的用户密码

下面进行报错,是因为没有host这个列

通过desc 这个命令来查看,确实没有这一列。

可以缩小搜索字段数内容

识别加密类型

在虚拟机种使用会报以下错误,所以放弃虚拟机中的方式,在windows下面进行破解。

安装:

下载链接

https://download.csdn.net/download/weixin_43902506/10821725

在hashcat文件夹中新建hashcat和test文本

使用hashcaat64 -a 0 -m 0 hash.txt test.txt命令进行破解

-a 0 代表使用字典破解模式;

-m 0 代表Hash Type为md5;

test.txt里保存密码字典

hash.txt里保存要破解的hash值

参考链接:

数据库:

安装初始化mysql后,默认几个库介绍-CSDN博客

https://rj45mp.github.io/2019/08/06/sql%E5%9F%BA%E7%A1%80/

https://www.cnblogs.com/c1e4r/articles/8618692.html

mysql读/写文件操作-CSDN博客

https://www.cnblogs.com/KevinGeorge/p/8394545.html

Hashcat:

https://www.cnblogs.com/tdcqma/p/5614631.html

https://klionsec.github.io/2017/04/26/use-hashcat-crack-hash/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

V_海贼王

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值