第7章管理MySQL用户与权限教学课件PPT.pptx
《第7章管理MySQL用户与权限教学课件PPT.pptx》由会员分享,可在线阅读,更多相关《第7章管理MySQL用户与权限教学课件PPT.pptx(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第7章 管理MySQL用户与权限MySQL网络数据库设计与开发(第3版)2022-7-112第七章 管理MySQL用户与权限MySQL网络数据库设计与开发(第3版)2022-7-113目 录情景引入任务目标任务实施010203任务小结知识拓展0405MySQL网络数据库设计与开发(第3版)2022-7-114小李配合导师完成了学生成绩管理系统的数据库设计,建好了相关数据库及表,录入了部分测试数据。但随着软件开发的推进,小李发现,数据库中的表数据及其他数据库对象偶尔会被其他成员误操作或误删,使数据库中的数据部分或全部丢失。为了保证MySQL数据库的安全性,小李有必要进一步学习数据库用户管理及其操
2、作权限管理以保护相关数据信息。7.1情景引入MySQL网络数据库设计与开发MySQL网络数据库设计与开发(第3版)2022-7-1157.1情景引入包括:1用户的添加与删除管理。2用户密码的设置与修改。 3用户权限设置与回收管理。 用户管理包括管理用户的账户与权限。MySQL数据库将用户分为普通用户和root用户,这两种用户的权限是不一样的。root用户是超级管理员,拥有的权限包括:创建用户、删除用户、修改普通用户的密码等管理权限。而普通用户只拥有在创建用户时赋予它的权限。MySQL网络数据库设计与开发(第3版)2022-7-1161. 知识目标2. 能力目标3. 素质目标7.2任务目标MyS
3、QL网络数据库设计与开发MySQL网络数据库设计与开发(第3版)2022-7-117 知识目标1了解MySQL权限表的基本信息。2掌握用户登录和退出MySQL服务器的方法。3掌握创建和删除普通用户的方法。4掌握普通用户和root用户的密码管理。5掌握MySQL数据库权限管理知识。7.2任务目标MySQL网络数据库设计与开发(第3版)2022-7-118 能力目标1能正确使用MySQL数据库的系统表。2能使用mysql命令创建、删除、修改系统账户。3能以管理员身份对普通账户进行管理。4能对系统账户进行密码修改。5能对MySQL账户赋予指定的权限。6能从MySQL账户中收回已经赋予的权限。7能使用
4、GRANT和REVOKE语句灵活管理数据库权限。7.2任务目标MySQL网络数据库设计与开发(第3版)2022-7-119 素质目标1具备数据安全与规范的意识。2具备规范操作数据的技术及职业素养。3具备一定的团队协作意识。4具备较强的规则与秩序意识。5具备规范操作数据库的技术及职业素养。7.2任务目标MySQL网络数据库设计与开发(第3版)2022-7-1110任务7.3.1 MySQL数据库权限表任务7.3.2 管理MySQL账户任务7.3.3 管理MySQL权限7.3任务实施MySQL网络数据库设计与开发MySQL网络数据库设计与开发(第3版)2022-7-1111 在安装MySQL数据库
5、软件时会自动安装一个名为mysql的数据库。mysql数据库中存储的都是权限表。用户登录以后,mysql数据库系统会根据这些权限表的内容为每个用户赋予相应的权限。MySQL服务器通过MySQL权限表来控制用户对数据库的访问,MySQL权限表存放在mysql数据库里,由mysql_install_db脚本初始化。这些MySQL权限表分别为user、db、table_priv、columns_priv、proc_priv、host等。7.3.1 MySQL数据库权限表MySQL网络数据库设计与开发(第3版)2022-7-1112下面依次简单介绍一下这些表的结构和内容。 user权限表:记录允许连接
6、到服务器的用户账号信息,其中的权限是全局级的。 db权限表:记录各个账号在各个数据库上的操作权限。 table_priv权限表:记录数据表级的操作权限。 columns_priv权限表:记录数据列级的操作权限。 proc_priv权限表:存储过程和存储函数的操作权限。 host权限表:配合db权限表对给定主机上的数据库级操作权限实施更细致的控制。这个权限表不受GRANT和REVOKE语句的影响。7.3.1 MySQL数据库权限表MySQL网络数据库设计与开发(第3版)2022-7-11131user表表 user表是mysql数据库中最重要的一个权限表。用户可以使用DESC语句来查看user表
7、中的基本结构。user表中有39个字段,这些字段大致分为4列,分别是用户列、权限列、安全列和资源控制列。 1)用户列 user表中的用户列包括host字段、user字段、password字段,分别表示主机名、用户名和密码。用户登录首先要判断的就是这3个字段,只有这3个字段同时匹配,mysql数据库系统才允许其登录。而且,创建新用户也是设置这3个字段的值。修改用户密码实际就是修改user表的password字段的值。因此,这3个字段决定了用户能否登录。7.3.1 MySQL数据库权限表MySQL网络数据库设计与开发(第3版)2022-7-11142)权限列user表的权限列包括了select_p
8、riv、insert_priv等以priv为结尾的字段。这些字段决定了用户的权限,其中不仅包括查询权限、修改权限等普通权限,还包括关闭服务器的权限、超级权限和加载用户等高级管理权限。普通用户用于操作数据库,高级管理权限用于对数据库进行管理。这些字段的值只有Y和N。Y表示该权限可以用到所有的数据库上;N表示该权限不能用到所有的数据库上。从安全角度考虑,这些字段的默认值都是N。可以使用GRANT语句为用户赋予一些权限,也可以通过使用UPDATE语句更新user表的方式来设置权限。说明:在权限列中有很多权限字段需要特别注意。grant_priv字段表示是否拥有GRANT权限;shutdown_pri
9、v表示是否拥有停止MySQL服务的权限;super_priv字段表示是否拥有超级权限;execute_priv字段表示是否拥有EXECUTE权限,拥有EXECUTE权限可以执行存储过程和存储函数。7.3.1 MySQL数据库权限表MySQL网络数据库设计与开发(第3版)2022-7-11153)安全列user表的安全列只有4个字段,分别是ssl_priv、ssl_cipher、x509_issuer、x509_subject。其中,ssl用于加密,x509标准可以用来标识用户。通常标准的发行版不支持SSL,使用SHOW VARIABLES LIKEhave_openssl语句可以查看user表
10、是否具有SSL功能。如果have_openssl的取值为DISABLED,则没有支持SSL加密的功能。4)资源控制列user表的4个资源控制分别是max_questions、max_updates、max_connections、max_user_ connections。其中,max_questions和max_updates分别规定了每个小时可以允许执行多少次查询和更新;max_connections规定了每个小时可以建立多少链接;max_user_connections规定了单个用户可以同时具有的链接数。这些字段的默认值都为0,表示没有限制。7.3.1 MySQL数据库权限表MySQL网
11、络数据库设计与开发(第3版)2022-7-11162db表和host表 db表和host表是MySQL数据库中非常重要的权限表。db表中存储了某个用户对一个数据库的权限。db表比较常用,而host表很少会用到。这两个表的表结构差不多,可以使用DESC语句查看这两个表的基本结构。db表和host表的字段大致可以分为两类,分别为用户列和权限列。 1)用户列 db表的用户列有3个字段,分别是host、db、user。这3个字段分别表示主机名、数据库名和用户名。host表的用户列有两个字段,分别是host和db,这两个字段分别表示主机名和数据库名。 host表是db表的扩展。如果db表中找不到host
12、字段的值,就需要到host表中去寻找。但是host表很少用到,通常db表的设置已经满足要求了。7.3.1 MySQL数据库权限表MySQL网络数据库设计与开发(第3版)2022-7-11172)权限列 db表和host表的权限列几乎一样,只是db表中多了一个create_routine_priv字段和alter_routine_priv字段。这两个字段决定了用户是否具有创建和修改存储过程的权限。 user表中的权限是针对所有数据库。如果user表中的select_priv字段取值为Y,则该用户可以查询所有数据库中的表;如果为某个用户只设置了查询test表的权限,则user表的select_pr
13、iv字段的取值为N。然而这个SELECT权限会记录在db表中,并且db表中的select_priv字段的取值将会是Y。由此可知,用户先根据user表的内容获取权限,再根据db表的内容获取权限。7.3.1 MySQL数据库权限表MySQL网络数据库设计与开发(第3版)2022-7-11183tables_priv表和表和columns_priv表表 tables_priv表可以对单个表进行权限设置。columns_priv表可以对单个数据列进行权限设置。tables_priv表包含了8个字段,分别是host、db、user、table_name、table_priv、column_ priv、t
14、imestamp、grantor。其中,前4个字段分别表示主机名、数据库名、用户名和表名;table_priv表示进行操作的权限,这些权限包括SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、GRANT、REFERENCES、INDEX、ALTER;column_priv表示对表中的数据列进行操作的权限,这些权限包括SELECT、INSERT、UPDATE、REFERENCES;timestamp表示修改权限的时间;grantor表示权限是谁设置的。7.3.1 MySQL数据库权限表MySQL网络数据库设计与开发(第3版)2022-7-1119 columns_p
15、riv表包含了7个字段,分别是host、db、user、table_name、column_name、column_priv、timestamp。与tables_priv表不同的是,这里多出了column_name字段,它表示可以对哪些数据列进行操作。 注意:注意:MySQL数据库中的权限分配是按照数据库中的权限分配是按照user表、表、db表、表、tables_priv表表和和columns_priv表的顺序进行分配的。在数据库系统中,先判断表的顺序进行分配的。在数据库系统中,先判断user表中的表中的值是否为值是否为Y。若。若user表中的值是表中的值是Y,则不需要检查后面的表;若,则不需
16、要检查后面的表;若user表中的值表中的值为为N,则依次查看,则依次查看db表、表、tables_priv表和表和columns_priv表。表。7.3.1 MySQL数据库权限表MySQL网络数据库设计与开发(第3版)2022-7-11204procs_priv表表 procs_priv表可以对存储过程和存储函数进行权限设置。procs_priv表包含了8个字段,分别是host、db、user、routine_name、routine_type、proc_priv、timestamp、grantor。前3个字段分别表示主机名、数据库名、用户名。routine_name字段表示存储过程或函数的
17、名称。routine_type字段表示类型。该字段有两个取值,分别是FUNCTION和PROCEDURE。其中,FUNCTION表示这是一个存储函数;PROCEDURE表示这是一个存储过程。proc_priv字段表示拥有的权限。权限分为3类,分别是EXECUTE、ALTER ROUTINE、GRANT。timestamp字段用于存储更新的时间。grantor字段用于存储创建者的名称。7.3.1 MySQL数据库权限表MySQL网络数据库设计与开发(第3版)2022-7-1121 账户管理是MySQL用户管理最基本的内容。账户管理包括登录和退出MySQL服务器、创建用户、删除用户、密码管理和权限
18、管理等内容。通过管理MySQL账户,可以保证MySQL数据库的安全性。1登录和退出登录和退出MySQL服务器服务器 用户可以通过mysql命令来登录MySQL服务器。打开Windows环境下的虚拟DOS窗口,可以使用mysql命令登录MySQL服务器。语法形式如下: mysql -h hostname|hostIP -P prot -u username -p password databaseName -e SQL语句;7.3.2 管理MySQL账户MySQL网络数据库设计与开发(第3版)2022-7-1122语法剖析如下: -h选项后面接主机名,hostname为主机名(默认为localh
19、ost),hostIP为主机IP(默认为127.0.0.1)。 -p选项后面接MySQL服务的端口。通过该参数连接到指定的端口。MySQL服务的默认端口为3306,在不使用该参数时会自动连接到3306端口,port为连接的端口号。 -u选项后面接用户名,username为用户名(默认为root)。 -p选项会提示输入密码,password为用户登录数据库的密码。 databaseName参数指明登录哪一个数据库中,可以使用USE命令选择数据库。如果没有修改参数,则会直接登录到MySQL数据库中。 -e选项后面可以直接加SQL语句。在登录MySQL服务器后就可以执行这个SQL语句,然后退出MyS
20、QL服务器。7.3.2 管理MySQL账户MySQL网络数据库设计与开发(第3版)2022-7-11237.3.2 管理MySQL账户2添加用户添加用户 在MySQL数据库中,可以使用CREATE USER语句创建一个或多个新的用户并设置相应的密码,也可以直接在mysql.user表中添加用户,还可以使用GRANT语句新建用户。 1)使用CREATE USER语句添加用户 在使用CREATE USER语句创建新用户时,必须拥有MySQL数据库的全局CREATE USER权限或INSERT权限。若账户已经存在,则会出现错误。CREATE USER语句基本语法形式如下: CREATE USER u
21、serIDENTIFIED BY PASSWORDpassword,userIDENTIFIED BY PASSWORD passwordMySQL网络数据库设计与开发(第3版)2022-7-1124 其中,user参数表示新建用户的账户,user由用户名(User)和主机名(Host)构成;IDENTIFIED BY关键字用来设置用户的密码;password参数表示用户的密码。如果密码是一个普通的字符串,就不需要使用PASSWORD关键字。CREATE USER语句可以同时创建多个用户。新用户可以没有初始密码。7.3.2 管理MySQL账户MySQL网络数据库设计与开发(第3版)2022-7
22、-1125 其中,PASSWORD()函数是用来给密码加密的。因为只设置了这3个字段的值,所以其他字段的取值均为其默认值。若除这3个字段以外的某个字段也没有默认值,则这个语句将不能执行。因此,需要将没有默认值的字段也设置值。在通常情况下,ssl_cipher、x509_subject和x509_issuer这3个字段是没有默认值的,因此必须为这3个字段设置初始值。INSERT语句的代码如下: INSERT INTO mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values (hostname, usern
23、ame, PASSWORD(password),); 注意:注意:在在mysql.user表中,因为表中,因为ssl_cipher、x509_issuer、ssl_subject这这3个字段没有默认值,所个字段没有默认值,所以在向以在向user表中插入新记录时,一定要设置这表中插入新记录时,一定要设置这3个字段的值,否则个字段的值,否则INSERT语句将不能执行。而语句将不能执行。而且,且,Password字段一定要使用字段一定要使用PASSWORD()函数给密码加密。函数给密码加密。7.3.2 管理MySQL账户MySQL网络数据库设计与开发(第3版)2022-7-11263)使用GRANT
24、语句新建普通用户 在创建用户时,可以使用GRANT语句为用户授权,但必须拥有对GRANT的权限。GRANT语句的基本语法形式如下: GRANT priv_type ON database.table TO userIDENTIFIED BY PASSWROD password ,userIDENTIFIED BY PASSWRODpassword; 其中,priv_type参数表示新用户的权限;database.table参数表示新用户的权限范围,即只能在制定的数据库和表上使用自己的权限;user参数表示新用户的账户,由用户名和主机名构成;IDENTIFIED BY关键字用来设置密码;pass
25、word参数表示新用户的密码。GRANT语句可以同时创建多个用户。 说明:说明:GRANT语句不仅可以创建用户,还可以修改用户密码,甚至可以设置用户的权语句不仅可以创建用户,还可以修改用户密码,甚至可以设置用户的权限。因此,限。因此,GRANT语句是语句是MySQL数据库中非常重要的语句。数据库中非常重要的语句。7.3.2 管理MySQL账户MySQL网络数据库设计与开发(第3版)2022-7-11273删除用户删除用户 在MySQL数据库中,可以使用DROP USER语句删除普通用户,也可以直接在mysql.user表中删除用户。 1)使用DROP USER语句删除普通用户 在使用DROP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第7章 管理MySQL用户与权限教学课件PPT 管理 MySQL 用户 权限 教学 课件 PPT
限制150内