SQL注入原理篇
[[sqlmap 使用]]
mysql数据结构
在练习靶场前我们需要了解以下mysql数据库结构,mysql数据库5.0以上版本有一个自带的数据库叫做information_schema,该数据库下面有两个表一个是tables和columns。tables这个表的table_name字段下面是所有数据库存在的表名。table_schema字段下是所有表名对应的数据库名。columns这个表的colum_name字段下是所有数据库存在的字段名。columns_schema字段下是所有表名对应的数据库。了解这些对于我们之后去查询数据有很大帮助。我们前面机关讲解比较详细后面就比较简单了。
注意table_name字段不是只存在于tables表,也是存在columns表中。表示所有字段对应的表名。
information_schema
是MySQL数据库系统中的一个特殊数据库,用于存储关于数据库、表、列、索引、权限等元数据信息。下面是information_schema
中一些常见的表以及它们的列:
TABLES 表:
TABLE_CATALOG
: 表所属的目录名称。TABLE_SCHEMA
: 表所属的数据库名称。TABLE_NAME
: 表的名称。TABLE_TYPE
: 表的类型,如BASE TABLE(基本表)或VIEW(视图)。ENGINE
: 表的存储引擎。ROW_FORMAT
: 行格式。TABLE_ROWS
: 表中的行数。AVG_ROW_LENGTH
: 平均行长度。DATA_LENGTH
: 表数据的长度。MAX_DATA_LENGTH
: 表可以容纳的最大数据长度。INDEX_LENGTH
: 表索引的长度。DATA_FREE
: 表中未使用的空间。
COLUMNS 表:
TABLE_CATALOG
: 列所属的目录名称。TABLE_SCHEMA
: 列所属的数据库名称。TABLE_NAME
: 列所属的表名称。COLUMN_NAME
: 列的名称。ORDINAL_POSITION
: 列在表中的位置。COLUMN_DEFAULT
: 列的默认值。IS_NULLABLE
: 列是否允许为空。DATA_TYPE
: 列的数据类型。CHARACTER_MAXIMUM_LENGTH
: 字符型列的最大长度。NUMERIC_PRECISION
: 数值型列的精度。NUMERIC_SCALE
: 数值型列的小数位数。COLUMN_TYPE
: 列的类型。COLUMN_KEY
: 列是否是索引的一部分。EXTRA
: 列的额外信息。
STATISTICS 表:
TABLE_CATALOG
: 索引所属的目录名称。TABLE_SCHEMA
: 索引所属的数据库名称。TABLE_NAME
: 索引所属的表名称。NON_UNIQUE
: 索引是否是唯一索引。INDEX_SCHEMA
: 索引的数据库名称。INDEX_NAME
: 索引的名称。SEQ_IN_INDEX
: 索引中列的顺序。COLUMN_NAME
: 索引列的名称。COLLATION
: 列的排序规则。CARDINALITY
: 索引中唯一值的数量。SUB_PART
: 索引的子部分长度。
这些表中的信息对于管理和了解数据库结构和内容非常有用。通过查询information_schema
,可以获取关于数据库和表的元数据信息,而不必直接访问数据库系统文件或执行系统命令。
在英语中,”schema”通常用来指代一种计划、模式或结构化的框架。在数据库领域中,”schema”通常指数据库的结构定义,包括表、列、约束等的定义。在其他领域,”schema”也可以指代其他类型的结构定义或计划,例如XML文档的结构定义,或者计算机程序的设计模式。总的来说,”schema”在英语中表示了一种组织和规划数据或信息的方式。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 li-yian!
评论