day2 -- 数据库的安全管理和维护

news2024/11/16 21:40:50

brief

  • 访问控制的目的不仅仅是防止用户的恶意企图。数据梦魇更为常见的是无意识错误的结果,如错打MySQL语句,在不合适的数据库中操作或其他一些用户错误。通过保证用户不能执行他们不应该执行的语句,访问控制有助于避免这些情况的发生。
  • 管理访问控制需要创建和管理用户账号
  • 像所有数据一样, MySQL的数据也必须经常备份


学习内容

本节主要记录的内容包括:

  • Mysql的访问控制
  • Mysql的用户管理
  • 数据库备份


详细记录

管理用户

MySQL用户账号和信息存储在名为mysql的MySQL数据库中。
mysql数据库有一个名为user的表, 它包含所有用户账号。
user表有一个名为user的列,它存储用户登录名。

Use mysql;
SELECT user from user;
  • 创建用户
# 创建一个新用户账号,指定的口令为纯文本
CREATE USER newguy IDENTIFIED BY 'textpassword';

# 创建一个新用户账号,指定的口令为散列值
CREATE USER newguy IDENTIFIED BY PASSWORD 'hashvaluepassword';

# 为重新命名一个用户账号,使用RENAME USER语句
RENANE USER newguy TO oldguy;

# 为了删除一个用户账号(以及相关的权限),使用DROP USER语句
DROP USER oldguy;
  • 设置访问权限
    在创建用户账号后,必须接着分配访问权限。新创建的用户账号没有访问权限。它们能登录MySQL,但不能看到数据,不能执行任何数据库操作。

    MySQL的权限用 用户名和主机名结合定义。如果不指定主机名,则使用默认的主机名%(授予用户访问权限而不管主机名)

为设置权限,使用GRANT语句。 GRANT要求你至少给出以下信息:

  • 要授予的权限;
  • 被授予访问权限的数据库或表;
  • 用户名
# 为看到赋予用户账号的权限,使用SHOW GRANTS FOR
SHOW GRANTS FOR newguy;

# 此GRANT允许用户在crashcourse.*( crashcourse数据库的所有表)上使用SELECT
GRANT SELECT ON crashcourse.* TO newguy;

# 每个GRANT添加(或更新)用户的一个权限。 MySQL读取所有授权,并根据它们确定权限
GRANT DELETE ON crashcourse.* TO newguy;

# GRANT的反操作为REVOKE,用它来撤销特定的权限
REVOKE DELETE ON crashcourse.* FROM newguy;
  • GRANT和REVOKE可在几个层次上控制访问权限:
  • 整个服务器,使用GRANT ALL和REVOKE ALL;
  • 整个数据库,使用ON database.*;
  • 特定的表,使用ON database.table;
  • 特定的列;
  • 特定的存储过程。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 更改登陆密码
# 对其他用户设置密码
SET PASSWORD FOR newguy = Password('newpassword');

# 对自己更新密码
SET PASSWORD = Password('newpassword');


  • 备份数据库
  • 使用命令行实用程序mysqldump转储所有数据库内容到某个外部文件
  • 可用命令行实用程序mysqlhotcopy从一个数据库复制所有数据(并非所有数据库引擎都支持这个实用程序)
  • 可以使用MySQL的BACKUP TABLE或SELECT INTO OUTFILE转储所有数据到某个外部文件。这两条语句都接受将要创建的系统文件 名,此系统文件必须不存在,否则会出错。数据可以用RESTORE TABLE来复原
  • 为了保证所有数据被写到磁盘(包括索引数据),可能需要在进行备份前使用FLUSH TABLES语句
# 这样会将table_name表中的所有数据备份到指定的文件中
BACKUP TABLE table_name TO '/path/to/backup/file';
# 这个语句会将table_name表中的所有数据导出到指定的文件中
SELECT * INTO OUTFILE '/path/to/output/file' FROM table_name;

# 这个语句会将指定的备份文件恢复为table_name表,并覆盖已有的表数据。
# 需要注意的是,该操作将删除原有表中的所有数据,请谨慎使用
RESTORE TABLE table_name FROM '/path/to/backup/file';

# 如果是使用SELECT INTO OUTFILE命令导出的数据文件,可以使用LOAD DATA INFILE语句将数据文件导入到表中
LOAD DATA INFILE '/path/to/data/file' INTO TABLE table_name;
  • 数据库维护
# 连接到MySQL服务器
mysql -u username -p

# 显示所有数据库
SHOW DATABASES;

# 切换到特定的数据库
USE database_name;

# 显示数据库中的所有表
SHOW TABLES;

# 备份数据库
mysqldump -u username -p database_name > backup_file.sql

# 恢复数据库
mysql -u username -p database_name < backup_file.sql

# 优化数据库表
# 如果从一个表中删除大量数据,应该使用OPTIMIZE TABLE来收回所用的空间,从而优化表的性能
OPTIMIZE TABLE table_name;

# 修复数据库表
REPAIR TABLE table_name;

# 用来检查表键是否正确
ANALYZE TABLE table_name;

# 针对许多问题对表进行检查
CHECK TABLE table_name;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/605103.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Makerbase SimpleFOC ESP32 例程6 双电机闭环位置力矩互控

Makerbase SimpleFOC ESP32 例程6 双电机闭环位置力矩互控 第一部分 硬件介绍 1.1 硬件清单 序号品名数量1ESP32 FOC V1.0 主板12YT2804电机2312V电源适配器14USB 线156pin杜邦线2 注意&#xff1a;YT2804是改装的云台无刷电机,带有AS5600编码器&#xff0c;可实现360连续运…

Go 字节跳动—从需求到上线全流程

走进后端开发流程 整个课程会带大家先从理论出发&#xff0c;思考为什么有流程 大家以后工作的团队可能不一样&#xff0c;那么不同的团队也会有不同的流程&#xff0c;这背后的逻辑是什么 然后会带大家按照走一遍从需求到上线的全流程&#xff0c;告诉大家在流程的每个阶段&am…

angular环境安装 (含nodejs详细安装步骤)

在安装本次环境之前&#xff0c;需要先把本机上的nodejs环境卸载&#xff0c;环境变量手动删除&#xff01;安装过程种环境才不会产生副作用&#xff01;实际项目安装的一次记录&#xff0c;踩了太多坑&#xff0c;记录一下&#xff0c;旨在记录&#xff01;项目需要两个不用版…

常用设计模式介绍~~~ Java实现 【概念+案例+代码】

前言 想要读懂源码、让自己的代码写的更加优雅&#xff0c;重构系统等。理解设计模式的思想&#xff0c;可以让我们事半功倍。以下稍微整理了常用的设计模式、每一种设计模式都有详细的概念介绍、案例说明、代码实例、运行截图等。这里给出目录导航。 目录 一、创建型模式 【一…

现在的面试把我卷崩溃了....

现在的面试也太卷了&#xff0c;前几天组了一个软件测试面试的群&#xff0c;没想到效果直接拉满&#xff0c;看来大家对面试这块的需求还是挺迫切的。昨天我就看到群友们发的一些面经&#xff0c;感觉非常有参考价值&#xff0c;于是我就问他还有没有。 结果他给我整理了一份…

Linux命令学习之cd

cd是进入某个目录的命令。man 1 cd看一下cd的使用说明。 发现cd是一个Shell内置命令。内置命令可以使用help 命令行来看一下帮助&#xff0c;比如help cd就可以看一下cd的帮助。 图中的[dir]就是参数&#xff0c;这个参数是目录名&#xff0c;比如可以使用cd /可以进入根目录…

外包派遣3年华为,合同结束转正,转正后工资12k-15k,13薪,包三餐,值得去吗?

“但凡有点机会&#xff0c;千万别去外包! ” 在程序员圈子里面&#xff0c;外包程序员似乎永远处于一个尴尬的角色&#xff0c;如果你说他们不是程序员吧&#xff0c;他们也是程序员。应该说是外包这个词比较尴尬吧。赶着和正式工一样的伙&#xff0c;待遇缺天差地别&#xf…

使用VS2019如何创建Win32的项目?

闲来无事&#xff0c;想学习一下Win32的开发&#xff0c;使用VS2019如何创建Win32的项目&#xff1f;费了老大的劲儿&#xff0c;终于捣鼓出来&#xff0c;现在记录一下。 1 创建新项目&#xff0c;在筛选栏选择C Windows 桌面&#xff0c;如下图&#xff0c;选择第一个“Windo…

由于找不到msvcr90.dll无法继续执行代码的5个修复方法

msvcr90.dll是Microsoft Visual C 2008 Redistributable软件包中的一个库文件&#xff0c;它是用于在Windows操作系统上运行C应用程序的重要文件之一。当我们电脑系统中的msvcr90.dll丢失或者损坏了&#xff0c;就会导致很多软件跟游戏无法打开运行&#xff0c;会提示“由于找不…

Linux文件权限及用户管理

文件权限 在Linux中&#xff0c;每个文件和目录都有一组权限&#xff0c;这些权限决定了哪些用户可以访问文件或目录&#xff0c;以及他们可以进行什么样的操作。权限分为三类&#xff1a; 所有者权限&#xff1a;这些权限适用于文件或目录的所有者。 组权限&#xff1a;这些…

vue+elementui+nodejs毕业设计选题管理系统x7xs6

为了实现对不同角色的分权限管理&#xff0c;从而让各个用户各司其职。学生用户需要登录系统后才能够进行毕设相关文件上传与查看&#xff0c;教师用户需要登录后才能够在线查看毕设相关文件并审核留言等。管理人员需要登录才能够管理各种功能&#xff0c;这三种用户的权限如下…

初阶二叉树的相关性质定理及题目练习

前言&#xff1a; 前面我们介绍了初阶二叉树的相关知识&#xff0c;二叉树常考的还是链式二叉树&#xff0c;而且二叉树也会考很多选择题&#xff0c;本文重点是在给出一些常考的二叉树的性质定理推导和经典练习题目配合强化巩固知识。 目录 一、二叉树的常见性质定理 二、常…

力扣高频SQL50题(基础版)——第四天

力扣高频SQL50题(基础版)——第四天 1 每台机器的进程平均运行时间 1.1 题目内容 1.1.1 基本题目信息1 1.1.2 基本题目信息2 1.1.3 示例输入输出 1.2 示例sql语句 SELECT machine_id,ROUND(SUM(IF(activity_typeend,timestamp,timestamp*-1))/count(distinct process_id),3…

English Learning - L3 作业打卡 Lesson4 Day26 2023.5.30 周二

English Learning - L3 作业打卡 Lesson4 Day26 2023.5.30 周二 引言&#x1f349;句1: It is easy to find my husband in a crowd.成分划分弱读连读语调 &#x1f349;句2: He stands almost two meters tall.成分划分爆破语调 &#x1f349;句3: He is a tall drink of wate…

嵌入式系统中u-boot和bootloader到底有什么区别

嵌入式软件工程师都听说过 u-boot 和 bootloader&#xff0c;但很多工程师依然不知道他们到底是啥。 今天就来简单讲讲 u-boot 和 bootloader 的内容以及区别。 Bootloader Bootloader从字面上来看就是启动加载的意思。用过电脑的都知道&#xff0c;windows开机时会首先加载…

【Nginx性能优化系列】Nginx绑定特定的CPU性能测评

【Nginx性能优化系列】Nginx绑定特定的CPU性能测评 前导知识说明:   CPU内部的缓存叫Cache   比如一颗CPU有4核,每个核心都有自己的独立缓存,以及所有核心的共享缓存。缓存分为一级缓存、二级缓存、三级缓存,一级缓存的速率基本上CPU相当,当然一级缓存的存储空间也较小…

【抽象类和接口】

目录 1.抽象类1.1什么是抽象类1.2抽象类语法1.3抽象类与普通类的区别 2.抽象类的特性2.1 特性2.2抽象类的作用 3.接口3.1什么是接口3.2语法规范3.3接口的使用3.4接口的特性3.5 实现多个接口3.6 接口的继承 4.接口的实例5.Clonable 接口和深拷贝5.1 浅拷贝5.2深拷贝 6. 抽象类和…

English Learning - L3 作业打卡 Lesson4 Day27 2023.5.31 周三

English Learning - L3 作业打卡 Lesson4 Day27 2023.5.31 周三 引言&#x1f349;句1: It is so crowded that we are packed like sardines – just like small fish in a can.成分划分弱读连读爆破语调 &#x1f349;句2: My supervisor at work is sometimes out to lunch.…

设计模式之database/sql 与Gorm设计原理

1.0 理解 database/sql 1.1 基本用法 - Quick Start 上面有几行错误 DSN相关知识&#xff1a; https://github.com/go-sql-driver/mysql#dsn-data-source-name https://en.wikipedia.org/wiki/Data_source_name 完整&#xff1a; 1.2 设计原理 极简接口设计原则&#xff1a; 对…

UNIX环境高级编程——高级I/O

14.1 引言 本章讨论高级I/O相关主题&#xff0c;包括&#xff1a; 非阻塞I/O&#xff1b;记录锁&#xff1b;I/O多路转接&#xff08;select、poll&#xff09;&#xff1b;异步I/O&#xff1b;readv和writev函数&#xff1b;存储映射I/O&#xff08;mmap&#xff09;。 14.…