Mysql 通过information_schema爆库,爆表,爆字段

MySQL版本大于5.0时,有个默认数据库information_schema,里面存放着所有数据库的信息(比如表名、 列名、对应权限等),通过这个数据库,我们就可以跨库查询,爆表爆列。

若要从这些视图中检索信息,请指定完全合格的 INFORMATION_SCHEMA view_name 名称。

列名 数据类型 描述
TABLE_CATALOG nvarchar(128) 表限定符。
TABLE_SCHEMA nvarchar(128) 表所有者。
TABLE_NAME nvarchar(128) 表名。
COLUMN_NAME nvarchar(128) 列名。
ORDINAL_POSITION smallint 列标识号。
COLUMN_DEFAULT nvarchar(4000) 列的默认值。
IS_NULLABLE varchar(3) 列的为空性。如果列允许 NULL,那么该列返回 YES。否则,返回 NO。
DATA_TYPE nvarchar(128) 系统提供的数据类型。
CHARACTER_MAXIMUM_LENGTH smallint 以字符为单位的最大长度,适于二进制数据、字符数据,或者文本和图像数据。否则,返回 NULL。有关更多信息,请参见数据类型
CHARACTER_OCTET_LENGTH smallint 以字节为单位的最大长度,适于二进制数据、字符数据,或者文本和图像数据。否则,返回 NULL。
NUMERIC_PRECISION tinyint 近似数字数据、精确数字数据、整型数据或货币数据的精度。否则,返回 NULL。
NUMERIC_PRECISION_RADIX smallint 近似数字数据、精确数字数据、整型数据或货币数据的精度基数。否则,返回 NULL。
NUMERIC_SCALE tinyint 近似数字数据、精确数字数据、整数数据或货币数据的小数位数。否则,返回 NULL。
DATETIME_PRECISION smallint datetime 及 SQL-92 interval 数据类型的子类型代码。对于其它数据类型,返回 NULL。
CHARACTER_SET_CATALOG varchar(6) 如果列是字符数据或 text 数据类型,那么返回 master,指明字符集所在的数据库。否则,返回 NULL。
CHARACTER_SET_SCHEMA varchar(3) 如果列是字符数据或 text 数据类型,那么返回 DBO,指明字符集的所有者名称。否则,返回 NULL。
CHARACTER_SET_NAME nvarchar(128) 如果该列是字符数据或 text 数据类型,那么为字符集返回唯一的名称。否则,返回 NULL。
COLLATION_CATALOG varchar(6) 如果列是字符数据或 text 数据类型,那么返回 master,指明在其中定义排序次序的数据库。否则此列为 NULL。
COLLATION_SCHEMA varchar(3) 返回 DBO,为字符数据或 text 数据类型指明排序次序的所有者。否则,返回 NULL。
COLLATION_NAME nvarchar(128) 如果列是字符数据或 text 数据类型,那么为排序次序返回唯一的名称。否则,返回 NULL。
DOMAIN_CATALOG nvarchar(128) 如果列是一种用户定义数据类型,那么该列是某个数据库名称,在该数据库名中创建了这种用户定义数据类型。否则,返回 NULL。
DOMAIN_SCHEMA nvarchar(128) 如果列是一种用户定义数据类型,那么该列是这种用户定义数据类型的创建者。否则,返回 NULL。
DOMAIN_NAME nvarchar(128)
如果列是一种用户定义数据类型,那么该列是这种用户定义数据类型的名称。否则,返回 NULL。

首先介绍一下的是爆库

select SCHEMA_NAME from  information_schema.SCHEMATA  limit 5,1/*
5,1表示从第1个开始,数到第5个

然后就是爆表了。

select TABLE_NAME  from  information_schema.TABLES   where 
TABLE_SCHEMA=0×6D656D626572 limit
5,1/*TABLE_SCHEMA=后面是库名的16进制

再来爆字段

select  COLUMN_NAME  from  information_schema.COLUMNS  where
TABLE_NAME=0×61646D5F75736572 limit 5,1/*

所有数据都是从information_schema.columns这个表里获取,因为从information_schema这个库我们可以看到,从information_schema.columns这个表里,我们可以查到所有的信息,因为它在里面,table_schema、 table_name、column_name这个三个列都有,所以我们可以直接通过这个表,查出我们需要的所有信息,就省了换表这一步了,进一步提升速度

时间: 2024-10-12 19:46:05

Mysql 通过information_schema爆库,爆表,爆字段的相关文章

mysql语句1-创建库和表

一.DDL数据定义语言 就是对书库内部的对象进行创建.删除.修改等操作的语言. 关键字:create  drop  alter 1.连接数据库 mysql -u用户名 -p -h指定主机(不指定默认是本机) 2. 创建数据库: mysql> create database test1; Query OK, 1 row affected (0.00 sec)  删除库 mysql> drop datbases test1; (0.00 sec):这个表示操作执行的时间. 3.查询数据库 mysq

获取sqlserver数据库中所有库、表、字段名的方法

1.获取所有数据库名: SELECT Name from Master..SysDatabases ORDER BY Name 2.获取所有表名: SELECT Name from DatabaseName..SysObjects Where XType='U' ORDER BY Name XType='U':表示所有用户表; XType='S':表示所有系统表; 3.获取所有字段名: SELECT Name from SysColumns WHERE id=Object_Id('TableNa

MySQL 之 第二章: 库与表的基本操作; 数据类型; 完整性约束; 外键;

库与表的基本操作 数据类型 完整性约束 外键 库与表的基本操作 库的增删改查: 查看系统库语句: show databases; information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件.锁等现象mysql: 授权库,主要存储系统用户的权限信息 sys: 创建数据库语法:

[MySQL] INFORMATION_SCHEMA 数据库包含所有表的字段

sql注入后可以通过该数据库获取所有表的字段信息 1. COLLATIONS表 提供有关每个字符集的排序规则的信息. COLLATIONS表包含以下列: COLLATION_NAME 排序规则名称. CHARACTER_SET_NAME 与排序规则关联的字符集的名称. ID 排序规则ID. IS_DEFAULT 排序规则是否为其字符集的默认值. IS_COMPILED 字符集是否已编译到服务器中. SORTLEN 这与对字符集中表示的字符串进行排序所需的内存量有关. 2. SHOW COLLAT

Mysql命令alter add:增加表的字段

alter add命令用来增加表的字段. alter add命令格式:alter table 表名 add字段 类型 其他; 例如,在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0:   mysql> alter table MyClass add passtest int(4) default '0'; 1) 加索引   mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]); 例子: mysql> al

(笔记)Mysql命令alter add:增加表的字段

alter add命令用来增加表的字段. alter add命令格式:alter table 表名 add字段 类型 其他; 例如,在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0:   mysql> alter table MyClass add passtest int(4) default '0'; 1) 加索引   mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]); 例子: mysql> al

mysql合并查询结果及为表和字段取别名

利用union关键字,可以给出多条select语句,并将它们的结果组合成单个的结果. 合并是,两个表对应的列数和数据类型必须相同. 各个select语句之间使用union或union all关键字分隔. union不使用关键字all,执行的时候会删除重复的记录,所有的返回行都是唯一的 使用all关键字的结果是不删除重复行也不对结果自动排序. select column, ... from table1 union [all] select column, ... from table2 此外un

(笔记)Mysql实例:建库建表并插入数据1

drop database if exists school;  // 如果存在school则删除create database school;  // 建立库schooluse school;  // 打开库SCHOOLcreate table teacher(  // 建立表TEACHER    id int(3) auto_increment not null primary key,    name char(10) not null,    address varchar(50) de

MySQL 同一实例不同库之间表同步(Otter 应用)

1 需求 在同一台服务器同一MySQL实例中的source库和target库都存在student表.如果source库中该表发生增删改操作时,也需要体现到target库的student表中: 2 解决方案 2.1 方案一:使用Shell脚本实现 由于自己缺少使用Shell编程的经验,此路暂时不通: shell脚本实现Mysql主从数据库 2.2 方案二:DataX 官方介绍: DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.

(笔记)Mysql实例:建库建表并插入数据2

drop database if exists school;  // 如果存在SCHOOL则删除create database school;  // 建立库SCHOOLuse school;  // 打开库SCHOOLcreate table teacher(  // 建立表TEACHER    id int(3) auto_increment not null primary key,    name char(10) not null,    address varchar(50) de