关联课件: 3子项目三 - MySQL用户管理(点击在线预览)
3.3.4 MySQL用户管理
前面进入MySQL控制台时,使用的是MySQL的超级管理用户,即用户名为root的用户。事实上在实际应用中一台数据库服务器往往多人同时使用,这时如果只有一个用户账号显然不够用。而且root用户拥有对数据库的全部权限,可以对数据库进行任意操作,当然不希望这个账号被一个一般的管理员使用。因此需要在MySQL中分配帐号,每个账号可以管理各自的数据库,不能越权。这样可以很好的提高数据库的安全性。
在MySQL中,增加新用户的方法主要有两个:一是直接向MySQL用户表中插入新记录;二是使用grant授权命令。
MySQL的用户账号和密码以及权限等信息,都存储在一个名为“mysql”的数据库的“user”表中(MySQL安装完成后自动创建,可以在控制台下查看)。分别执行以下两个命令:
mysql> use mysql
mysql> select * from user;
这时可以看到类似于下面样式的返回结果(以下结果进行过简化)
----------- ------- ------------------ ------------- ------------- ------------
| Host | User | Password ……
| % | root | 1c8bc9fa64c40b82 ……
----------- ------- ------------------ ------------- ------------- ------------
1 rows in set (0.00 sec)
可以看到查询出了user表中的记录,每条记录就是一个用户账号信息。由于user表有数十个字段,因此读者看到的查询结果可能显示的比较零乱,这是由于屏幕尺寸有限,无法在一行内显示出所有字段,自动换行后导致的。
新安装的MySQL,一般USER表中有两个用户,分别是root和匿名用户。匿名用户即不需要用户名和密码即可进入系统的用户。
在user表中,前3个字段Host、User、Password分别表示登录主机、用户名和密码。登录主机表示此用户允许登录的主机地址,即IP地址。“%”表示任意主机。如果本用户只能从本地登录,不允许远程登录,可以用“localhost”或本机IP地址。用户密码用加密方式存储,因此看到的密码是一串无规则的字符串。从第4个字段以后的字段,表示权限状态,即该用户是否有某权限。这些权限包括查询权限、修改权限、删除权限等。
知道了MySQL存储用户的基本原理,就自然可以想到,增加一个用户的第一种方法就是直接向这个表中插入新记录。但是由于user表字段较多,用INSERT语句向表中插入记录比较麻烦,因此这种方法虽然可行,但很少被采用。
创建新用户以及为用户分配权限的第二种方法是使用GRANT命令。GRANT命令功能强大,相比于直接插入用户简单的多,因此是采用比较多的方法。下面是GRANT命令的语法结构:
GRANT priv_type [(column_list)] [, priv_type [(column_list)] ...]
ON {tbl_name | * | *.* | db_name.*}
TO user_name [IDENTIFIED BY 'password']
[, user_name [IDENTIFIED BY 'password'] ...]
[WITH GRANT OPTION]
这是完整的GRANT语句语法结构。看起来比较复杂。使用本命令可以一次创建多个MySQL账号。在实际应用中一般一次只创建一个用户,这样语法结构就可以简化为:
GRANT priv_type [(column_list)]]
ON {tbl_name | * | *.* | db_name.*}
TO user_name [IDENTIFIED BY 'password']
而到了具体的语句中,还可以继续简化。如:
mysql> GRANT ALL ON DB1.* to “Nie” IDENTIFIED BY “123456”;
此语句执行之后创建用户Nie,密码123456,该用户对数据库DB1拥有全部权限。
下面我们对GRANT语句的语法结构进行简要分析。
· GRANT——关键字,表示授权语句开始。
· priv_type——权限类型。可以是select/delete/update/create/drop/alter等任意一种。如果是全部权限,可以用all privileges,并且可以简写为all。
· ON { tbl_name | * | *.* | db_name.*}——声明此用户可以操作哪些数据库以及哪些表。声明可以使用以下4种方法之一:
Ø tbl_name:直接指定表名,如info。
Ø *:任意表。
Ø *.*:任意数据库的任意表。
Ø db_name.*:指定数据库的所有表,如db1。
· TO user_name:指定用户名。即要创建的账号的用户名,如上例中的“Nie”。
· IDENTIFIED BY:此项目为可选。指定账号所对应的密码。应用引号引起来。密码提交后会自动被加密。
本节介绍了MySQL中用户管理的基本方法。尤其是讲解了GRANT语句的使用方法。实际应用中该语句十分灵活、方便,熟练掌握GRANT语句可以在进行MySQL管理时游刃有余。
MySQL分为普通用户与root用户。这两种用户的权限不一样。
内容很详细,讲解的很清楚。也很有趣,生动。
MySQL用户管理讲解的很到位,知识点都很详细。
老师讲的很详细,从中学到了很多。
1.权限表 MYSQL是一个多用户的数据库,MYSQL的用户可以分为两大类: (1) 超级管理员用户(root),拥有全部权限 (2) 普通用户,由root创建,普通用户只拥有root所分配的权限
讲的内容对于我们这个阶段来讲是非常的实用的
直接向MySQL用户表中插入新记录,使用grant授权命令。有点懵
条理清晰,通俗易懂
讲解到位,受益匪浅
比较具体,便于理解,对学习MySQL帮助很大
讲的很细腻
介绍了MySQL中用户管理的基本方法,尤其是讲解了GRANT语句的使用方法,熟练掌握GRANT语句可以在进行MySQL管理时游刃有余,很到位。
一直搞不懂这,看完视频恍然大悟
介绍了MySQL中用户管理的基本方法。尤其是讲解了GRANT语句的使用方法。实际应用中该语句十分灵活、方便,熟练掌握GRANT语句可以在进行MySQL管理时游刃有余。
通俗易懂 方便学习
内容详细易懂,感谢老师