[11]-web安全后端基础-数据库

一、MySQL基础

1.数据库简介

  1. 简介
    • 作用:存储数据
    • 定义:是以一定方式存储在一起,能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
    • 特点:存储空间大、可存放百万、千万、上亿条数据
  2. 分类
    • 关系型数据库:存储格式可以直观反映实体间的关系,与常见的表格类似,表之间有许多复杂的关联关系,如:mysql、SQLserver等
    • 非关系型数据库:为简化数据库结构、避免冗余、影响性能的表连接、摒弃复杂分布式目的NoSQL数据库,如:MongoDB、Redis,NoSQL适合追求速度与可拓展性、业务多变性应用场景
  3. MySQL
    • 目前最流行的关系型数据库
    • web应用方面最好的
    • 开源
    • 采用标准SQL数据语言
    • 多平台
    • 可定制
  4. RDBMS(关系数据库管理系统)术语
    • 数据库:关联表的集合
    • 数据表:表示数据的矩阵
    • 列:一列包含同类型的数据
    • 行:一行包含一组相关的数据

2.课后作业---MySQL安装

二、MySQL基础

1.数据库基本操作

  1. 显示数据库
    进入mysql后,执行以下命令,查看本地存在的所有数据库(记得带上分号)
    注意,其中information_schema数据库,对于web渗透十分重要

    mysql> show databases;
    
  2. 进入对应的数据库
    使用use进入,进入后可以使用shouw database()函数检查当前所处的数据库

    mysql> use information_schema
    mysql> select database();
    

    image-20230203201718642

  3. 查看目前数据库的所有数据表
    使用以下命令

    mysql> show tables;
    
  4. 查看数据库版本

    mysql> select version();
    
  5. 查看使用当前数据库的用户

    mysql> select user();
    
  6. 查看数据库路径

    mysql> select @@datadir;
    
  7. 查看mysql安装路径

    mysql> select @@basedir;
    
  8. 查看数据库安装的系统

    mysql> select @@version_compile_os;
    

2.Web渗透重点数据库

  1. information_schema数据库
    • 信息数据库,保存着关于mysql服务器所维护的所有其他数据库的信息,如表名、权限等
    • Web渗透用途很大
    • SCHEMATA表:提供了当前MySQL实例中所有的数据库信息,show databases来自于此
    • TABLES表:提供关于数据库中的表的信息(包括视图)
    • COLUMNS表:提供表中的列信息,详细描述了某张表的所有列以及每个列的信息。
  2. mysql数据库
    • MySQL的核心数据库
    • 主要负责存储数据库的用户、权限配置、关键字等mysql自己需要使用的控制和管理信息
  3. performance_schema数据库
    • 内存数据库,数据放在内存中直接操作的数据库
    • 存放在内存中,提高应用性能
  4. sys数据库
    • 通过该数据库,可以查询到谁使用了最多的资源,基于IP或者用户
    • 查询那张表被访问过最多等信息

3.查看information_schema重点表

  1. 创建表

    mysql> create database tes1;
    mysql> use tes1 
    Database changed
    mysql> create table tes1
        -> (
        -> id int(11),
        -> name varchar(11)
        -> );
    Query OK, 0 rows affected (0.03 sec)
    
    
  2. 查看SCHEMATA

    mysql> select * from information_schema.schemata;
    +--------------+--------------------+----------------------------+------------------------+----------+
    | CATALOG_NAME | SCHEMA_NAME        | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
    +--------------+--------------------+----------------------------+------------------------+----------+
    | def          | information_schema | utf8                       | utf8_general_ci        | NULL     |
    | def          | mysql              | utf8                       | utf8_general_ci        | NULL     |
    | def          | performance_schema | utf8                       | utf8_general_ci        | NULL     |
    | def          | tes1               | utf8                       | utf8_general_ci        | NULL     |
    | def          | test               | utf8                       | utf8_general_ci        | NULL     |
    +--------------+--------------------+----------------------------+------------------------+----------+
    5 rows in set (0.00 sec)
    
  3. 查询TABLES
    通过information_schema来查询tes1数据库所包含的表

    mysql> select * from information_schema.tables where table_schema='tes1';
    

    image-20230203215241516

  4. 查看COLUMNS
    查看tes1数据表有哪些列

    mysql> select * from information_schema.columns where table_name='tes1'; 
    

    可以在图中看到,刚刚所创建的两列:

    image-20230203214913078

4.SQL基础

  1. 'select'
    查询语句
  2. 'update'
    修改、更新数据
  3. 'delete'
    删除表中记录
  4. like----渗透过程比较关键的语句--联合查询
  5. union---渗透过程中比较关键语句--联合查询
  6. 参考:菜鸟教程
posted @ 2023-02-05 14:37  缪白(Miubai)  阅读(30)  评论(0编辑  收藏  举报