欢迎光临
我们一直在努力

网络安全入门——数据库基础安全概念

前言

        在数字化时代,数据库作为信息系统的核心存储组件,其安全性直接关系到整个系统的稳定运行和数据的机密性。无论是企业ERP系统、电商平台还是个人博客,几乎所有的应用都离不开数据库的支持。本文将系统性地介绍数据库的基础概念、CRUD操作以及相关的安全基础知识,帮助初学者构建数据库安全的第一道防数据库基础安全:从零开始线。

一、数据库基础概念

1.什么是数据库?

        数据库(Database)是按照特定结构组织、存储和管理数据的仓库。想象一下图书馆的管理系统:成千上万的书籍需要被分类、编号、存储,并能快速被读者查询到。数据库就是这样一个电子化的"图书馆管理系统",但存储的不是书籍,而是各种类型的数据。

2.DBMS:数据库的管理者

        DBMS(Database Management System,数据库管理系统)是操纵和管理数据库的软件系统。常见的DBMS有:

  • MySQL:开源关系型数据库,广泛应用

  • Oracle:企业级大型数据库系统

  • SQL Server:微软开发的关系型数据库

  • PostgreSQL:功能强大的开源数据库

  • MongoDB:非关系型文档数据库

        DBMS负责数据库的创建、查询、更新和维护,同时提供数据安全、并发控制等功能。

3.数据库的层次结构

数据库系统通常包含以下几个层次:

  • 物理层:数据在磁盘上的实际存储方式

  • 逻辑层:数据库管理员和开发人员看到的数据结构

  • 视图层:最终用户看到的数据呈现方式

  • 二、数据库的CRUD操作

    1.CRUD是什么?

    CRUD代表数据库的四种基本操作:

    • Create(创建):向数据库添加新数据

    • Read(读取):从数据库查询数据

    • Update(更新):修改数据库中现有数据

    • Delete(删除):从数据库移除数据

    2.创建数据库

    步骤1:安装数据库管理系统

    以MySQL为例,可以从官网下载并安装MySQL Community Server。

    步骤2:创建数据库

    — 初始化公司数据库
    CREATE DATABASE company_db;

    — 切换到目标数据库
    USE company_db;

    — 建立员工信息表
    CREATE TABLE employees (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    department VARCHAR(50),
    salary DECIMAL(10, 2),
    hire_date DATE DEFAULT CURRENT_DATE,
    is_active BOOLEAN DEFAULT TRUE
    );

    — 建立系统用户表
    CREATE TABLE users (
    user_id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) UNIQUE NOT NULL,
    password_hash VARCHAR(255) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    last_login TIMESTAMP NULL,
    login_attempts INT DEFAULT 0,
    account_locked BOOLEAN DEFAULT FALSE
    );

    三、SQL语言基础

    1.SQL简介

    SQL(Structured Query Language,结构化查询语言)是与数据库交互的标准语言。它分为几个主要部分:

  • DDL(数据定义语言):定义数据结构

    • CREATE:创建数据库对象

    • ALTER:修改数据库对象

    • DROP:删除数据库对象

  • DML(数据操纵语言):操作数据

    • SELECT:查询数据

    • INSERT:插入数据

    • UPDATE:更新数据

    • DELETE:删除数据

  • DCL(数据控制语言):控制访问权限

    • GRANT:授予权限

    • REVOKE:撤销权限

  • 2.数据的CRUD操作实战

    创建数据(C)

    — 新增员工信息记录
    INSERT INTO employees (name, email, department, salary)
    VALUES
    ('张三', 'zhangsan@example.com', '技术部', 15000.00),
    ('李四', 'lisi@example.com', '市场部', 12000.00),
    ('王五', 'wangwu@example.com', '人力资源部', 10000.00);

    — 添加用户账号信息(重要提示:生产环境必须对密码进行加密处理)
    INSERT INTO users (username, password_hash, email)
    VALUES
    ('admin', '$2y$10$ExampleHashValue', 'admin@example.com');

    读取数据(R)

    — 查询所有员工
    SELECT * FROM employees;

    — 查询特定部门的员工
    SELECT name, email, salary FROM employees
    WHERE department = '技术部';

    — 按薪资排序
    SELECT name, department, salary FROM employees
    ORDER BY salary DESC;

    — 统计各部门平均薪资
    SELECT department, AVG(salary) as avg_salary
    FROM employees
    GROUP BY department;

    更新数据(U)

    — 技术部员工薪资调整
    UPDATE employees
    SET salary = salary * 1.1
    WHERE department = '技术部';

    — 停用2020年前入职的老员工账号
    UPDATE employees
    SET is_active = FALSE
    WHERE hire_date < '2020-01-01';

    — 重置管理员登录状态
    UPDATE users
    SET last_login = CURRENT_TIMESTAMP,
    login_attempts = 0
    WHERE username = 'admin';

    删除数据(D)

    — 删除非活跃员工记录(操作前请确认)
    DELETE FROM employees
    WHERE is_active = FALSE;

    — 清空整张员工表(高危操作,慎用!)
    — DELETE FROM employees;

    — 推荐方案:采用软删除方式
    — 1. 添加删除标记字段
    ALTER TABLE employees
    ADD COLUMN is_deleted BOOLEAN DEFAULT FALSE;

    — 2. 标记指定记录为已删除
    UPDATE employees
    SET is_deleted = TRUE
    WHERE id = 5;

    — 3. 查询有效数据(自动过滤已删除记录)
    SELECT * FROM employees
    WHERE is_deleted = FALSE;

    赞(0)
    未经允许不得转载:171主机测评 » 网络安全入门——数据库基础安全概念
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址