MySQL数据库项目化教程(第2版)(微课版)课件 项目八 数据库安全及性能优化.pptx
MySQL数据库
项目化教程;;项目任务;能力目标;思政引领(素养提示);知识导图;;;MySQL数据库系统中有两类用户,分别是root用户和普通用户。root用户是管理员用户,具有最高的权限,可以对整个数据库系统进行管理操作,如创建用户、删除用户、管理用户的权限等。而普通用户只能够根据被赋予的某些权限进行管理操作。在MySQL8.0版本中经过代码重构,优化器更加强大,新增了一些特性。8.0版本与先旧版本同时也存在不一样的地方,特别是在创建用户、修改密码、授权等语句使用均有所不同。为了更好、更安全地管理数据库,本任务以不同的方式进行创建用户、修改用户密码,以及删除用户等操作。;;安装MySQL数据库时,数据库系统默认安装一个名为mysql的数据库,该数据库不能删除,否则系统将无法正常运行,mysql数据库中包含了大量的表,如user表、coumns_piv表、host表、proc表、event表、servers表等,其中user表就是用户管理表。;user表中含有42个字段,其中在MySQL8.0版本中password字段更换成authentication_string字段,可以用以下语句查看该表中的信息:;这些字段大致可以分为4类,具体如下。
(1)用户类字段
当应用程序需要操作数据库之前,必须先与数据库建立连接,建立连接时用到的主机名、用户名和密码就是user表中的host、user、authentication_string字段,这些字段就是用户类字段。
建立数据库连接时,输入的信息必须与这3个字段的内容相匹配。
用以下语句可查看user表中用户类的字段内容:;(2)权限类字段
在user表中,关于权限的字段有20多个,其中包括Select_priv、Insert_priv、Update_priv、Delete_priv、Create_priv等以priv结尾的字段,这些字段的权限对整个数据库有效,它的取值只有N或Y,其中N表示该用户不具有对应的权限,Y表示该用户具有对应的权限。为了安全起见,普通用户的权限默认是N,也就是说,如果普通用户要具有相应的权限,必须把对应字段的值由N改为Y。
可以通过以下语句查看以上几个权限类字段的值。;(3)安全类字段
在user表中,有6个字段用于管理用户的安全信息,具体如下。
①ssl_tpye和ssl_cipher:用于加密。
②x509_issuer和x509_subject:用于标识用户。
???plugin和authentication_string:用于存储与授权相关的插件。;(4)资源控制类字段
在user表中,用于限制用户使用资源的字段有4个,具体如下。
①max_questions:表示每小时内允许用户执行查询数据库操作的次数。
②max_updates:表示每小时内允许用户执行更新数据库操作的次数。
③max_connections:表示每小时内允许用户执行连接数据库操作的次数。
④max_user_conntions:表示单个用户同时连接数据库的次数。;;;;;;;;;;;;;;;;;;;;;;;;;;;;;任务总结;;;数据库的安全关系到整个应用系统的安全,其很大程度上依赖于用户权限的管理,数据库的管理员应该为每个数据库的普通用户设置相应的权限。本任务主要涉及学生竞赛项目管理系统数据库用户的权限管理,包括权限的授予、权限的查看、权限的回收。;;MySQL服务器通过MySQL权限表控制用户对数据库的访问,MySQL权限表存放在mysql数据库中,这些MySQL权限表包括user、db、table_priv、columns_priv、host等,下面分别介绍。
①user权限表:记录允许连接到服务器的用户信息,里面的权限是全局级的。
②db权限表:记录各个用户在各个数据库上的操作权限。
③table_priv权限表:记录数据表级的操作权限。
④columns_priv权限表:记录数据列级的操作权限。
⑤host权限表:配合db权限表对给定主机上数据库级的操作权限进行更细致的控制。这个权限表不受GRANT和REVOKE语句的影响。;下面对MySQL数据库中的权限做如下具体说明。
①INSERT权限:代表允许向表中插入数据,同时,在执行ANALYZETABLE、OPTIMIZETABLE、REPAIRTABLE语句时也需要INSERT权限。
②DELETE权限:代表允许删除行数据。
③DROP权限:代表允许删除数据库、表、视图。
④EVENT权限:代表允许查询、创建、修改、删除MySQL事件。;⑤EXECUTE权限:代表允许执行存储过程和存储函数。
⑥FILE权限:代表允