mysql用户管理

数据的导出和导入

当希望将自己数据库中的表结构和数据分享给别人的时候,可以使用下面的导出命令,在命令提示符下:

mysqldump -u root -p monkey1024 > d:/init.sql

上面的monkey1024是要导出的数据库的名称。

别人发给我们sql文件之后,我们可以利用命令来导入sql脚本,在命令提示符(管理员权限)下登录成功后,输入下面内容:

source d:/init.sql

即source后写上sql文件的目录地址。

用户管理

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

权限表

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

User表

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

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

db表

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

tables_priv

tables_priv来设置表的操作权限
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;

修改root密码

set password for root@'%' = password('111111')