您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 第15章__MySQL用户管理
第15章MySQL用户管理MySQL用户包括普通用户和root用户。这两种用户的权限是不一样的。root用户是超级管理员,拥有所有的权限。root用户的权限包括创建用户、删除用户、修改普通用户的密码等管理权限。而普通用户只拥有创建该用户时赋予它的权限。用户管理包括管理用户的帐户、权限等。在这一章中将讲解的内容包括。•权限表介绍•用户登录和退出MySQL服务器•创建和删除普通用户•普通用户和root用户的密码管理•权限管理15.1权限表安装MySQL时会自动安装一个名为mysql的数据库。mysql数据库下面存储的都是权限表。用户登录以后,MySQL数据库系统会根据这些权限表的内容为每个用户赋予相应的权限。这些权限表中最重要的是user表、db表和host表。除此之外,还有tables_priv表、columns_priv表、proc_priv表等。本节将为读者介绍这些表的内容。15.1.1user表user表是MySQL中最重要的一个权限表。读者可以使用DESC语句来查看user表的基本结构。user表有39个字段。这些字段大致可以分为四类,分别是用户列、权限列、安全列和资源控制列。本小节将为读者介绍这些字段含义。1.用户列2.权限列3.安全列4.资源控制列15.1.2db表和host表db表和host表也是MySQL数据库中非常重要的权限表。db表中存储了某个用户对一个数据库的权限。db表比较常用,而host表很少会用到。读者可以使用DESC语句来查看这两个表的基本结构。这两个表的表结构差不多。db表和host表的字段大致可以分为两类,分别是用户列和权限列。1.用户列2.权限列15.1.3tables_priv表和columns_priv表tables_priv表可以对单个表进行权限设置。columns_priv表可以对单个数据列进行权限设置。读者可以使用DESC语句来查看这两个表的基本结构。本小节将介绍这两个表的内容。tables_priv表包含8个字段,分别是Host、Db、User、Table_name、Table_priv、Column_priv、Timestamp和Grantor。前四个字段分别表示主机名、数据库名、用户名和表名。Table_priv表示对表进行操作的权限。这些权限包括Select、Insert、Update、Delete、Create、Drop、Grant、References、Index和Alter。Column_priv表示对表中的数据列进行操作的权限。这些权限包括Select、Insert、Update和References。Timestamp表示修改权限的时间。Grantor表示权限是谁设置的。15.1.4procs_priv表procs_priv表可以存储过程和存储函数进行权限设置。读者可以使用DESC语句来查看procs_priv表的基本结构。本小节将为读者介绍procs_priv表中各字段的含义。procs_priv表包含8个字段,分别是Host、Db、User、Routine_name、Routine_type、Proc_priv、Timestamp和Grantor。前三个字段分别表示主机名、数据库名和用户名。Routine_name字段表示存储过程或函数的名称。Routine_type字段表示类型。该字段有两个取值,分别是FUNCTION和PROCEDURE。FUNCTION表示这是一个存储函数。PROCEDURE表示这是一个存储过程。Proc_priv字段表示拥有的权限。权限分为3类,分别是Execute,AlterRoutine和Grant。Timestamp字段存储更新的时间。Grantor字段存储权限是谁设置的。15.2帐户管理账户管理是MySQL用户管理的最基本的内容。账户管理包括登录和退出MySQL服务器、创建用户、删除用户、密码管理、权限管理等内容。通过账户管理,可以保证MySQL数据库的安全性。本小节将向读者详细介绍这些内容。15.2.1登录和退出MySQL服务器用户可以通过mysql命令来登录MySQL服务器。在第2章和第3章已经简单介绍过一些登录MySQL服务器的方法,但是有些参数还不全。在本小节中将详细的介绍mysql命令的参数和退出MySQL服务器的方法。启动MySQL服务后,可以通过mysql命令来登录MySQL服务器。命令如下:mysql-hhostname|hostIP-Pport-uusername-pDatabaseName-eSQL语句15.2.2新建普通用户在MySQL数据库中,可以使用CREATEUSER语句来创建新的用户,也可以直接在mysql.user表中添加用户。还可以使用GRANT语句来新建用户。本小节将为读者介绍这三种方法。1.用CREATEUSER语句来新建普通用户2.用INSERT语句来新建普通用户3.用GRANT语句来新建普通用户15.2.3删除普通用户在MySQL数据库中,可以使用DROPUSER语句来删除普通用户,也可以直接在mysql.usr表中删除用户。本小节将为读者介绍这两种方法。1.用DROPUSER语句来删除普通用户2.用DELETE语句来删除普通用户15.2.4root用户修改自己的密码root用户拥有很高的权限,因此必须保证root用户的密码的安全。root用户可以通过多种方式来修改密码。本小节将介绍几种root用户修改自己的密码的方法。1.使用mysqladmin命令来修改root用户的密码2.修改mysql数据库下的user表3.使用SET语句来修改root用户的密码15.2.5root用户修改普通用户密码root用户不仅可以修改自己的密码,还可以修改普通用户的密码。root用户登录MySQL服务器后,可以通过SET语句、修改user表和GRANT语句来修改普通用户的密码。本小节将向读者介绍root用户修改普通用户密码的方法。1.使用SET语句来修改普通用户的密码2.修改mysql数据库下的user表3.用GRANT语句来修改普通用户的密码15.2.6普通用户修改密码普通用户也可以修改自己的密码。这样普通用户就不需要每次需要修改密码时都通知管理员。普通用户登录到MySQL服务器后,可以通过SET语句来设置自己的密码。SET语句的基本形式为:SETPASSWORD=PASSWORD('new_password');15.2.7root用户密码丢失的解决办法root用户密码丢失了,会给用户造成很大的麻烦。但是,可以通过某种特殊方法登录到root用户下。然后在root用户下设置新的密码。下面是解决root用户密码丢失的方法,执行步骤如下:1.使用--skip-grant-tables选项启动MySQL服务2.登录root用户,并且设置新的密码3.加载权限表15.3权限管理权限管理主要是对登录到数据库的用户进行权限验证。所有用户的权限都存储在MySQL的权限表中。数据库管理员要对权限进行管理。合理的权限管理能够保证数据库系统的安全。不当的权限设置可能会给数据库系统带来意想不到的危害。本节将为读者介绍权限管理的内容。15.3.1MySQL的各种权限MySQL数据库中有很多种类的权限,这些权限都存储在mysql数据库下的权限表中。其中,user表中的权限种类最多。本小节将为读者介绍MySQL中的各种权限。15.3.2授权授权就是为某个用户赋予某些权限。例如,可以为新建的用户赋予查询所有数据库和表的权限。合理的授权能够保证数据库的安全。不合理的授权会使数据库存在安全隐患。MySQL中使用GRANT关键字来为用户设置权限。本小节将为读者介绍授权的方法。MySQL中,必须拥有GRANT权限的用户才可以执行GRANT语句。GRANT语句的基本语法如下:GRANTpriv_type[(column_list)]ONdatabase.tableTOuser[IDENTIFIEDBY[PASSWORD]'password'][,user[IDENTIFIEDBY[PASSWORD]'password']]...[WITHwith_option[with_option]...]15.3.3收回权限收回权限就是取消某个用户的某些权限。例如,如果数据库管理员觉得某个用户不应该拥有DELETE权限,那么就可以将DELETE权限收回。收回权限的方式可以保证数据库的安全。MySQL中使用REVOKE关键字来为用户设置权限。收回指定权限的REVOKE语句的基本语法如下:REVOKEpriv_type[(column_list)]...ONdatabase.tableFROMuser[,user]...15.3.4查看权限MySQL中,可以使用SELECT语句来查询user表中各个用户的权限,也可以直接使用SHOWGRANTS语句来查看权限。mysql数据库下的user表中存储着用户的基本权限,可以使用SELECT语句来查看。SELECT语句的代码如下:SELECT*FROMmysql.user;15.4本章实例本小节将创建一个名为aric的用户,初始密码设置为“abcdef”。该用户对test数据库下的所有表拥有查询、更新和删除的权限。用户创建成功后进行如下操作:(1)使用root用户将其密码修改为“aaabbb”。(2)查看aric用户的权限。(3)收回aric用户的删除权限。(4)删除aric用户。本实例的执行步骤如下:1.创建aric用户2.查看aric用户的权限3.收回aric用户的删除权限4.删除aric用户15.5上机实践上机实践的要求如下:(1)将使用root用户创建exam1用户,初始密码为“123456”。让该用户对所有数据库拥有SELECT、CREATE、DROP、SUPER和GRANT权限。(2)创建用户exam2,该用户没有初始密码。(3)用exam2登录,将其密码设置为“686868”。(4)用exam1登录,为exam2设置CREATE和DROP权限。(5)用root用户登录,收回exam1和exam2的所有权限。15.6常见问题及解答1.mysqladmin命令不能修改普通用户的密码?2.新创建的MySQL用户不能在其它机器上登录MySQL数据库?15.7小结本章介绍了MySQL数据库的权限表、账户管理、权限管理的内容。其中,账户管理和权限管理是本章的重点内容。这两部分中的密码管理、授权、收回权限是重中之重,因为这些内容涉及到MySQL数据库的安全。希望读者能够认真学习这部分的内容。取回root用户的密码和授权是本章的难点。取回root用户密码的操作很复杂,需要读者按照本章的内容进行练习。授权时需要确定给用户分配什么权限,这需要根据实际情况来决定。下一章将为读者介绍数据备份与还原。15.8本章习题1.用root用户创建一个名为my的用户,密码设置为“mysql”。为该用户设置CREATE和DROP权限。2.修改题1中的my用户的密码,将密码改为“mybook”。分别练习用root用户和my用户的权限来修改。3.假设忘记了root用户的密码,然后为root用户设置新的密码。
本文标题:第15章__MySQL用户管理
链接地址:https://www.777doc.com/doc-3185666 .html