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

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

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

目录:

第十四章:保护数据库

[1、SECURING DATABASE------保护数据库](#1、SECURING DATABASE——保护数据库)

[2、CREATING A USER------创建一个用户](#2、CREATING A USER——创建一个用户)

[3、VIEWING USERS------查看用户](#3、VIEWING USERS——查看用户)

[4、DROPPING USERS------删除用户](#4、DROPPING USERS——删除用户)

[5、CHANGING PASSWORDS------修改密码](#5、CHANGING PASSWORDS——修改密码)

[6、GRANTING PRIVILEGES------授予权限](#6、GRANTING PRIVILEGES——授予权限)

[7、VIEWING PRIVILEGES------查看权限](#7、VIEWING PRIVILEGES——查看权限)

[8、REVOKING 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

相关推荐
Ai 编码助手2 小时前
MySQL中distinct与group by之间的性能进行比较
数据库·mysql
陈燚_重生之又为程序员2 小时前
基于梧桐数据库的实时数据分析解决方案
数据库·数据挖掘·数据分析
caridle2 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
白云如幻2 小时前
MySQL排序查询
数据库·mysql
萧鼎2 小时前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
^velpro^2 小时前
数据库连接池的创建
java·开发语言·数据库
苹果醋33 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
荒川之神3 小时前
ORACLE _11G_R2_ASM 常用命令
数据库·oracle
IT培训中心-竺老师3 小时前
Oracle 23AI创建示例库
数据库·oracle
小白学大数据3 小时前
JavaScript重定向对网络爬虫的影响及处理
开发语言·javascript·数据库·爬虫