一. 创建用户
命令: CREATE USER ‘username’@‘host’ IDENTIFIED BY ‘password’;
说明:
username: 你将创建的用户名
host: 指定该用户在哪个主机上可以登陆, 如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆, 可以使用通配符%
password: 该用户的登陆密码, 密码可以为空, 如果为空则该用户可以不需要密码登陆服务器
例子:
CREATE USER ‘dog’@‘localhost’ IDENTIFIED BY ‘123456’;
CREATE USER ‘pig’@‘%’ IDENTIFIED BY ‘123456’;
二. 授权:
命令:GRANT privileges ON databasename.tablename TO ‘username’@‘host’
说明:
privileges: 用户的操作权限, 如SELECT, INSERT, UPDATE等, 如果要授予所的权限则使用ALL
databasename: 数据库名
tablename: 表名, 如果要授予该用户对所有数据库和表的相应操作权限则可用表示, 如.*
例子:
GRANT SELECT, INSERT ON test.user TO ‘pig’@‘%’;
GRANT ALL ON . TO ‘pig’@‘%’;
GRANT ALL ON maindataplus.* TO ‘pig’@‘%’;
注意:
用以上命令授权的用户不能给其它用户授权, 如果想让该用户可以授权, 用以下命令:
GRANT privileges ON databasename.tablename TO ‘username’@‘host’ WITH GRANT OPTION;
三.设置与更改用户密码
命令: SET PASSWORD FOR ‘username’@‘host’ = PASSWORD(‘newpassword’);
如果是当前登陆用户用:
SET PASSWORD = PASSWORD(“newpassword”);
例子:
SET PASSWORD FOR ‘pig’@‘%’ = PASSWORD(“123456”);
四. 撤销用户权限
命令: REVOKE privilege ON databasename.tablename FROM ‘username’@‘host’;
说明:
privilege, databasename, tablename: 同授权部分
例子:
REVOKE SELECT ON . FROM ‘pig’@‘%’;
注意:
假如你在给用户’pig’@‘%‘授权的时候是这样的(或类似的): GRANT SELECT ON test.user TO ‘pig’@’%’, 则在使用REVOKE SELECT ON . FROM ‘pig’@‘%’;命令并不能撤销该用户对test数据库中user表的SELECT 操作。相反, 如果授权使用的是GRANT SELECT ON . TO ‘pig’@‘%’;则REVOKE SELECT ON test.user FROM ‘pig’@‘%’;命令也不能撤销该用户对test数据库中user表的Select权限。
具体信息可以用命令SHOW GRANTS FOR ‘pig’@‘%’; 查看。
五.删除用户
命令: DROP USER ‘username’@‘host’;
MySQL 权限详解
All/All Privileges 权限代表全局或者全数据库对象级别的所有权限
Alter 权限代表允许修改表结构的权限,但必须要求有 create 和 insert 权限配合。如果是 rename 表名,则要求有 alter 和 drop 原表, create 和 insert 新表的权限
Alter routine 权限代表允许修改或者删除存储过程、函数的权限
Create 权限代表允许创建新的数据库和表的权限
Create routine 权限代表允许创建存储过程、函数的权限
Create tablespace 权限代表允许创建、修改、删除表空间和日志组的权限
Create temporary tables 权限代表允许创建临时表的权限
Create user 权限代表允许创建、修改、删除、重命名user的权限
Create view 权限代表允许创建视图的权限
Delete 权限代表允许删除行数据的权限
Drop 权限代表允许删除数据库、表、视图的权限,包括 truncate table 命令
Event 权限代表允许查询,创建,修改,删除MySQL事件
Execute 权限代表允许执行存储过程和函数的权限
File 权限代表允许在 MySQL 可以访问的目录进行读写磁盘文件操作,可使用的命令包括 load data infile,select … into outfile,load file()函数
Grant option 权限代表是否允许此用户授权或者收回给其他用户你给予的权限,重新付给管理员的时候需要加上这个权限
Index 权限代表是否允许创建和删除索引
Insert 权限代表是否允许在表里插入数据,同时在执行 analyze table,optimize table,repair table 语句的时候也需要 insert 权限
Lock 权限代表允许对拥有 select 权限的表进行锁定,以防止其他链接对此表的读或写
Process 权限代表允许查看 MySQL 中的进程信息,比如执行 show processlist, mysqladmin processlist, show engine 等命令
Reference 权限是在5.7.6版本之后引入,代表是否允许创建外键
Reload 权限代表允许执行 flush 命令,指明重新加载权限表到系统内存中,refresh 命令代表关闭和重新开启日志文件并刷新所有的表
Replication client 权限代表允许执行 show master status,show slave status,show binary logs 命令
Replication slave 权限代表允许 slave 主机通过此用户连接 master 以便建立主从复制关系
Select 权限代表允许从表中查看数据,某些不查询表数据的 select 执行则不需要此权限,如 Select 1+1, Select PI()+2;而且 select 权限在执行 update/delete 语句中含有 where 条件的情况下也是需要的
Show databases 权限代表通过执行 show databases 命令查看所有的数据库名
Show view 权限代表通过执行 show create view 命令查看视图创建的语句
Shutdown 权限代表允许关闭数据库实例,执行语句包括 mysqladmin shutdown
Super 权限代表允许执行一系列数据库管理命令,包括 kill 强制关闭某个连接命令, change master to创建复制关系命令,以及 create/alter/drop server 等命令
Trigger 权限代表允许创建,删除,执行,显示触发器的权限
Update 权限代表允许修改表中的数据的权限
Usage 权限是创建一个用户之后的默认权限,其本身代表连接登录权限