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

news/2024/11/15 1:24:48/

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.ppmy.cn/news/188067.html

相关文章

常见的IO模型

计算机硬件包括CPU&#xff0c;内存&#xff0c;网卡 为了避免用户应用和操作系统内核产生冲突乃至内核崩溃&#xff0c;用户应用和内核是隔离开的 1)进程的寻址空间会被划分成两部分&#xff0c;内核空间和用户空间&#xff0c;内核和用户应用都无法直接访问物理内存&#xff…

拆除

拆除包含很多项目&#xff0c;以自家装修为例吧。依次从阳台、主卧、客厅、卫生间、次卧、厨房来说吧。阳台主要是拆除门帘窗和铲墙皮&#xff08;如果阳台铺了瓷砖&#xff0c;还要拆砖&#xff09;。主卧是拆地砖、铲墙皮、拆门帘窗。客厅是拆地砖、铲墙皮、拆吊柜。卫生间包…

​​​​​​​国民经济行业分类(GB/T 4754—2017)

代码类别名称说明门类大类中类小类A 农、林、牧、渔业 本门类包括01&#xff5e;05大类 01 农业 指对各种农作物的种植 011 谷物种植 指以收获籽实为主的农作物的种植&#xff0c;包括稻谷、小麦、玉米等农作物的种植和作为饲料和工业原料的谷物的种植 0111稻谷种植…

北京租房攻略

北漂的这几年&#xff0c;给我记忆最深的除了职场上的四处碰壁之外&#xff0c;就是租房这件事了。 对于每一个在北京工作的小伙伴来说&#xff0c;我想租房带来的困扰绝对不亚于工作。 如何能在北京租到一间满意且称心的房子&#xff0c;绝对是每个北漂小伙伴共同的心愿所在…

2021年西式面点师(中级)考试题库及西式面点师(中级)考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 西式面点师&#xff08;中级&#xff09;考试题库是安全生产模拟考试一点通生成的&#xff0c;西式面点师&#xff08;中级&#xff09;证模拟考试题库是根据西式面点师&#xff08;中级&#xff09;最新版教材汇编出…

三分钟看懂ERP、MES、APS系统的关联和区别

导读&#xff1a;企业ERP、APS系统与MES是企业实现全面管理规划的重要组合。 ERP系统在于对整个企业与集团企业间的全面管控&#xff0c;APS系统是生产规划及排程系统&#xff0c;MES系统重点在于车间现场的管理&#xff0c;下面用最简单方式讲讲ERP系统、APS系统和MES系统之间…

2022年中式面点师(初级)考试题库及模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2022中式面点师&#xff08;初级&#xff09;考试试题是中式面点师&#xff08;初级&#xff09;判断题高频考题覆盖&#xff01;2022年中式面点师&#xff08;初级&#xff09;考试题库及模拟考试依据中式面点师&…

大专毕业,从6个月开发转入测试岗位的一些感悟——写在测试岗位3年之际

时光飞逝&#xff0c;我从前端开发岗位转入测试岗位已经三年了&#xff0c;这期间从迷茫到熟悉&#xff0c;到强化&#xff0c;到熟练&#xff0c;到总结&#xff0c;感受还是很深的&#xff01; 三年前的某一个晚上&#xff0c;我正准备下班回家&#xff0c;我们的项目经理把…