Bootstrap

MySQL数据分析进阶(十四)保护数据库

※食用指南:文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记,笔记整理比较粗糙,主要目的自存为主,记录完整的学习过程。(图片超级多,慎看!)

【中字】SQL进阶教程 | 史上最易懂SQL教程!10小时零基础成长SQL大师!!icon-default.png?t=N7T8https://www.bilibili.com/video/BV1UE41147KC/?spm_id_from=333.1007.0.0&vd_source=b287f1f4a1fa54cc438e31a0f87ef4e2

目录:

第十四章:保护数据库

1、SECURING DATABASE——保护数据库

2、CREATING A USER——创建一个用户

3、VIEWING USERS——查看用户

4、DROPPING USERS——删除用户

5、CHANGING PASSWORDS——修改密码

6、GRANTING PRIVILEGES——授予权限

7、VIEWING PRIVILEGES——查看权限

8、REVOKING PRIVILEGES——撤销权限


第十四章:保护数据库

1、SECURING DATABASE——保护数据库

通常在服务器上的某个地方有一个数据库,如果不注重安全性,别人可以访问和滥用数据

保障数据安全的用户账户和权限问题

2、CREATING A USER——创建一个用户

目前都是使用根用户连接到数据库服务器(早期安装MySQL时创建的用户账号)

当工作环境中使用MySQL时,需要创建其他用户,并赋予它们特定权限

假设正在创建一个网络或桌面应用程序,应用程序需要访问MySQL数据库的数据,要为应用程序创建一个用户账户,并授予阅读,将数据写入应用程序数据库的权限

这个用户账号不能更改数据库的结构,不应该能够创建新表或删除现有表

假设有人以数据库管理员的身份新加入机构,需要为此创建账户,以便可以管理一个或多个数据库或MySQL服务器

❗如何创建一个新的用户账户,涉及分配权限或特权

①创建命名用户

②选择限制用户的连接位置,键入计算机的IP地址

这个用户只能从同一台安装了MySQL的计算机连接,如果试图从另一台计算机连接,会被拒绝连接

在云环境中非常有用,通常有一个网络服务器和一个数据库服务器

在数据库服务器上为应用程序创建新用户账号时,确保那个用户账户只能从网络服务器连接,要指定网络服务器的IP地址

还可以指定一个主机名

代表当前安装了MySQL的这台计算机

指定域名

可以从该域中的任何计算机来连接,但无法从codewithpauleen.com的子网域连接

为解决该问题,添加一个通配符%.表示任何子网域,就可以从这个域的任何计算机或任何子网域连接了

删掉后面的限制,john就可以从任何地方链接,毫无限制

③为用户设置密码(永远、绝对不要用1234这个密码,要用强密码,越长越好)

3、VIEWING USERS——查看用户

查看MySQL服务器的用户列表

方法一

数据库中有一张表user

Host:表示用户的连接点

中间三个用户供MySQL自行使用,最后是根用户

所有的主机都是localhost,所以想用根用户身份登录,必须用这台计算机,不能远程连接并以根用户身份登录

方法二

4、DROPPING USERS——删除用户

有人离职需要删除他们的用户账户,这样他们就无法再访问MySQL服务器

记得把不再使用的用户账号删掉

5、CHANGING PASSWORDS——修改密码

作为数据管理人员,有时会需要更改别人的密码或者是自己的密码

方法一

第二个修改当前登录用户的密码,不管是根用户还是其他人

方法二

直接修改密码,或者expire passwaord(密码失效),强制该用户下次登陆时更改密码(记得点Apply)

6、GRANTING PRIVILEGES——授予权限

授权的两种情况

①普通用户

有一个网络或桌面应用程序,想允许这个应用程序在数据库中读写数据,没有拥有创建新表或修改现有表的权限(仅管理员)

假设有一个叫moon的应用程序,需要能够在sql store数据库中读写数据

a-创建账户

b-设置密码

c-授予权限(SELECT,INSERT,UPDATE,DELETE,EXECUTE,通常是会周瑜应用程序用户一些典型权限)

d-允许读取的数据库或者单独的表

e-指定用户账号(如果用户账号有主机、IP地址或域名也需写明)

f-用该用户账号连接到服务器

如果使用其他数据库就会报错

管理人员

新人加入团队,给一个或多个数据库,甚至整个MySQL服务器的管理权限

ALL最高级别的权限

*.*所有数据库所有表

查找特权完整列表在此处查询:mysql privileges

7、VIEWING PRIVILEGES——查看权限

想查看分配给一个用户账号的权限或特权

方法一

删掉FOR子句可以看到当前用户的权限

 

方法二

可以随时更改、应用

8、REVOKING PRIVILEGES——撤销权限

想撤销一个或多个权限,或他人滥用权限想撤销

moon_app该账号只能读写数据和执行存储过程,而不能创建视图

撤销方法:

注重安全性:不要向用户授予多余的特权,尽量授予用户账号所需的最低权限,不然会帮系统捅出很多安全漏洞

————TBC

;