MySQL数据库学习资料(九)

MySQL数据库学习资料(九),第1张

MySQL数据库学习资料(九)

目录

数据库的安全性

1 数据库安全性的概念及分类

1.1 数据库安全性概念

1.2 DBMS的安全机制

1.3 DBA的责任和义务

2 数据库自主安全性机制

2.1 名词解释

2.2 数据库管理系统安全控制机制

2.3 MySQL中的数据库安全机制

3 E-R图基本知识

事务知识点总结

pyMySQL介绍


数据库的安全性 1 数据库安全性的概念及分类 1.1 数据库安全性概念

本节介绍了数据库安全方面的内容:

数据库安全性是指DBMS应该保证的数据库的一种特性:免受非法、非授权用户的使用、泄露、更改或破坏。

1.2 DBMS的安全机制

- 自主安全性机制

- 强制安全性机制

- 推断控制机制

1.3 DBA的责任和义务

DBA (Data base Administrator) 翻译为数据库管理员,指拥有数据库最高权限的 *** 作者,DBA的责任和义务如下:

-  熟悉相关的法规政策,协助组织的决策者制定好相关的安全策略

-  规划好安全控制保障措施,例如系统安全级别,不同级别上的安全控制措施,对安全遭破坏的响应

- 划分好数据的安全级别以及用户的安全级别

- 实施安全控制。DBMS专门提供一个DBA账户,该账户是一个超级用户,用户利用该账户的特权,可以进行相关用户账户的创建以及权限授予和撤销安全级别控制调整  (这点可以这么理解:其实就是大家在windows系统中的Administrator用户或者大部分linux中的root用户(根用户或系统用户),超级用户有更改系统环境变量、删除、安装程序的功能,对应数据库管理系统的数据库管理员,有增删改查数据库及表的功能)

2 数据库自主安全性机制 2.1 名词解释

DCL:data control language:数据控制语言

访问规则SOTP:用户S对访问对象O在满足P的条件下,拥有访问权利T

2.2 数据库管理系统安全控制机制

当有访问数据库的 *** 作时,数据库管理系统自动按安全性控制规则进行检查,检查通过则允许访问,不通过则不允许访问。

自主安全性的实现方式:

- 使用存储矩阵

- 使用视图:使用视图可以从数据表中选取指定列,限制用户对表中某些属性、的访问

2.3 MySQL中的数据库安全机制

1 创建、删除用户

要授予、回收用户权限,第一步是创建用户,MySQL中使用CREATE USER关键字来创建用户。例子:

CREATE USER 'sc'@'localhost' IDENTIFIED BY '123456';

CREATE USER 'cat'@'%' IDENTIFIED BY'123456';

说明:

- CREATE USER是固定关键字,指创建用户

- ‘sc’:指你创建的用户名

- 'localhost':指定用户可以在哪个主机上登陆,如果仅允许本地登陆,则使用'localhost',如果想让该用户可以从任意远程主机登陆,则使用通配符'%'

- '123456':该用户的登陆密码,密码可以为空,如果为空则用户可以不需要密码登陆服务器。

删除用户使用DROp USER关键字

DROP USER 'sc'@'localhost';

2 授权

授权指给用户查看、更新、删除数据库的权利,命令是

GRANT 权利 ON 数据库的某个表 TO 用户名@允许登陆的IP  或者 

GRANT previlieges ON database.tablename TO 'username'@'host',来看几个例子:

GRANT SELECT ON my_db.sc TO 'sc'@'localhost';

GRANT SELECT ON my_db.* TO 'cat'@'%';

GRANT ALL ON *.* TO 'dog'@'%;'

撤销用户权限:

撤销用户权限用于回收下放的权限,命令是

REVOKE privilege ON databasename.tablename FROM 'username'@'host';

例子:

REVOKE ALL ON *.* FROM 'dog'@'%';

3 MySQL8.0中的了ROLE功能

所谓Role,可以认为是一个权限的集合,这个集合有一个统一的名字,就是Role名,你可以为多个账户赋予统一的某个Role的权限,而权限的修改可以直接通过修改Role来实现,而无需每个账户逐一GRANT权限,大大方便了运维和管理。

关于ROLE的使用可以参考官方文档:

MySQL :: MySQL 8.0 Reference Manual :: 13.7.1.2 CREATE ROLE Statement

4强制安全机制

强制安全性通过对数据对象进行安全性分级,从数据的读写角度考虑:

- 若用户级别大于数据级别,可以读取数据

- 若用户级别小于数据级别,可以写入数据(为了防止高级别用户写入数据使得数据的级别发生改变,低级别用后续无法访问该数据)

3 E-R图基本知识

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。

它是描述现实世界概念结构模型的有效方法。是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。

总结来说,E-R图的四个组成的部分

矩形框:表示实体,在矩形框中写上实体的名字

椭圆形框:表示实体或联系的属性

菱形框:表示联系,在框中记入联系名

连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)。

下面简单的介绍下基本的概念

实体:客观存在并且可以相互区分的事物为实体。可以是具体的人,事,物或者抽象的概念

属性:实体所具有的某一个特性就称为属性,一个实体可以由若干个属性来刻画。

码:唯一标识实体的属性集

域:属性的取值范围称为该属性的域

实体型:用实体名及其属性名集合来抽象和刻画同类实体称为实体型

实体集:同一类型实体的集合称为实体集

联系:现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。包括实体内部的联系及实体之间的联系

其中码分为超码,候选码,主码,外码

超码:一个或多个属性的集合,这些属性的组合可以使我们在一个实体集中唯一的标识一个实体

候选码:任意超码的真子集不能包括超码,则称其为候选码;超码包括候选码

主码: 其实主码一般指的就是主关键字。主关键字是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录,主关键字又可以称为主键。 主键可以由一个字段,也可以由多个字段组成,分别称为单字段主键或多字段主键。又称主码。

外码: 外码别称外键,具体来说就是比如说这个外码是相对于关系R来说的,但是如果相对于关系S来说的话是关系R中的主码,外码就是这个意思。

举个最经典的例子

E-R图表示某个工厂物资管理的概念模型

实体包括:

仓库: 仓库号、面积、电话号码;

零件 :零件号、名称、规格、单价、描述;

供应商:供应商号、姓名、地址、电话号码、帐号;

项目:项目号、预算、开工日期;

职工:职工号、姓名、年龄、职称;

实体之间的联系

仓库------零件

1、一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件是多对多的关系。

2、用库存量来表示某种零件在某个仓库中的数量

仓库------职工

1、一个仓库拥有多个职工,一个职工只能在一个仓库中工作,仓库和职工是一对多的关系

2、职工之间有领导和被领导的关系,因为管仓库肯定有个头,所以有领导和被领导的关系。

E-R图如下所示

事务知识点总结

1.如何理解事务的ACID性质?

事务ACID理解_dengjili的专栏-CSDN博客_acid

2.如何理解事务的隔离性?

5分钟带你读懂事务隔离性与隔离级别 - Coder编程 - 博客园

3.如何理解乐观锁与悲观锁:

面试必备之乐观锁与悲观锁_不忘初心-CSDN博客_乐观锁和悲观锁

pyMySQL介绍

pymysql的官方文档:

Welcome to PyMySQL’s documentation! — PyMySQL 0.7.2 documentation

pymysql的基本使用:

PyMySQL的基本使用 - 我要去流浪 - 博客园

菜鸟教程:

Python MySQL – mysql-connector 驱动 | 菜鸟教程

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4000644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-22
下一篇 2022-10-22

发表评论

登录后才能评论

评论列表(0条)

保存