mysql用户管理

用户管理

在MySQL数据库中,可以创建很多不同的用户, 为不同用户指定不同的访问权限,这样可以保证数据的安全性。MySQL数据库用户分为root用户与普通用户. root就是超级管理员,拥有所有的权限, 普通用户只拥有我们授予它的权限。有一个名字叫做mysql的数据库,该数据库中存放了用户管理相关的表

权限表

MySQL数据库通过权限表来控制用户的对数据库的访问,存储用户权限的信息表主要有: user, db, host, tablepriv, columnpriv等。

User表

user表是MySQL最重要的一个权限表,记录允许连接到服务器的用户信息,在mysql数据库中user表包含以下信息:

host表示主机
user用户名
password密码
权限列 xxxx_priv
安全列, ssl  x509
资源控制列,每小时允许查询的次数,更新的次数

db表

db表存储了用户对某个数据库的操作权限,哪个用户可以操作哪个数据库,host存储了某个主机对数据库的操作权限,如果权限允许,我们可以从一台电脑访问另外一台电脑上的数据库。

tables_priv

tablespriv来设置表的操作权限
columns
priv来设置列的操作权限

新建帐户

要创建新用户,必须有相应的权限来执行创建操作,这里我们通过root用户创建

使用CREATE USER创建新用户

CREATE USER 'rabbit'@'localhost'  IDENTIFIED BY  '123123'

创建了用户后,该用户没有操作权限,还需要使用Grant命令给该用户授权。在创建用户时,可以直接使用GRANT在创建用户的同时给用户授权。

使用GRANT语句创建用户

把test数据库中所有的表的select,update权限授予 ‘monkey’@’localhost’用户,同时指定用户的密码是123123

GRANT SELECT,UPDATE ON test.* TO 'monkey'@'localhost' IDENTIFIED BY '123123'

删除帐户

DROP USER 'rabbit'@'localhost';

DELETE FROM mysql.user  WHERE user='monkey' AND host = 'localhost';

修改普通用户的密码

update  mysql.user set password = password(新密码) where  user=’monkey’ and  host=’localhost’
flush privileges;