1
2
3
4
5
6
7
8
9
10
11

MySQL用户管理

发布时间:2017-07-20 07:53   发布人:毛书朋   浏览次数:7922


关联课件:  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管理时游刃有余。




  • 刘普敏 2018-01-07 15:42:03
    MySQL分为普通用户与root用户。这两种用户的权限不一样。
  • 邹文涛 2018-01-08 08:26:34
    内容很详细,讲解的很清楚。也很有趣,生动。
  • 向珍 2018-01-09 15:36:57
    MySQL用户管理讲解的很到位,知识点都很详细。
  • 刘鑫蕊 2018-01-09 16:07:39
    老师讲的很详细,从中学到了很多。
  • 徐新如 2018-01-09 16:09:24
    1.权限表 MYSQL是一个多用户的数据库,MYSQL的用户可以分为两大类: (1) 超级管理员用户(root),拥有全部权限 (2) 普通用户,由root创建,普通用户只拥有root所分配的权限
  • 岳猛 2018-01-09 16:14:01
    讲的内容对于我们这个阶段来讲是非常的实用的
  • 魏德旺 2018-01-09 16:21:37
    直接向MySQL用户表中插入新记录,使用grant授权命令。有点懵
  • 甄丹丹 2018-01-09 16:28:12
    条理清晰,通俗易懂
  • 郭蓉 2018-01-09 16:54:54
    讲解到位,受益匪浅
  • 屈佳丽 2018-01-09 17:16:18
    比较具体,便于理解,对学习MySQL帮助很大
  • 李文杰 2018-01-09 17:16:24
    讲的很细腻
  • 王怀宇 2018-01-09 20:29:25
    介绍了MySQL中用户管理的基本方法,尤其是讲解了GRANT语句的使用方法,熟练掌握GRANT语句可以在进行MySQL管理时游刃有余,很到位。
  • 丁宁 2018-01-10 11:37:25
    一直搞不懂这,看完视频恍然大悟
  • 李倩文 2018-01-10 11:50:33
    介绍了MySQL中用户管理的基本方法。尤其是讲解了GRANT语句的使用方法。实际应用中该语句十分灵活、方便,熟练掌握GRANT语句可以在进行MySQL管理时游刃有余。
  • 刘心怡 2018-01-10 12:07:12
    通俗易懂 方便学习
  • 杨宇生 2018-01-10 19:19:31
    内容详细易懂,感谢老师