用户管理主要包括两方面的工作:
用户账号的管理,包括:创建,删除,改密
用户权限的管理,包括:授予权限,取消权限
17.1.查看用户
mysql数据库管理系统中有个数据库叫做“mysql”,绝对不能删除!
其中有个表“user”,就是存储了当前数据库系统中的所有用户信息。
初始时只有一个用户:root 。
use mysql;
select * from user;
17.1.创建用户
create user ‘用户名’[@’允许登录的地址’] identified by ‘密码’;
1,创建用户之后,数据库mysql中的user表中就会多一个用户。
2,‘允许登录的地址’,就是允许登录的客户端的ip地址,或
①”localhost”表示只能本地登录;
②“%”表示任何位置都可以登录;
③该部分可以省略,如果省略,默认就是”%”;
④后续涉及到用户的操作,都是这个格式。
‘用户名’[@’允许登录的地址’]是一个整体,不管是创建还是删除
create user ‘user1’ identified by ‘123’;
create user ‘user2’@’localhost’ identified by ‘123’;
create user ‘user3’@’192.168.1.103’ identified by ‘123’;
create user ‘user4’@’%’ identified by ‘123’;
17.3.删除用户
drop user 用户[@’允许登录的地址’];
删除用户后,数据库mysql中的user表中就会少一个用户。
17.4.修改/设置用户密码
set password for 用户[@’允许登录的地址’] = password(‘密码’);
password(‘密码’) 为mysql加密函数
17.5.授予用户权限
grant 操作1,操作2,.... on *.*或数据库名.* 或 数据库名.表名 to 用户[@’允许登录的地址’];
1,“操作”其实就是权限名,是一个“特定词”,比如:delete, insert, update, select, create, 等等。
①其中,还可以用“all”,表示“所有权限”(除了grant权限)。
2,on后表示对“什么东西”来设定该权限,意思是对什么库的什么表,其中:
①. :表示所有库的所有表;
②数据库名.* :表示该指定数据库的所有表;
③数据库名.表名:表示该指定数据库的该指定表;
mysql中的所有操作(权限),有如下所示:
17.6.取消用户授权
revoke 操作1,操作2,.... on *.*或数据库名.* 或 数据库名.表名 from 用户[@’允许的地址’];
测试的时候,需要使用两个cmd窗口,一个是root用户进行用户和权限管理,另一个窗口用于测试。