当前位置 > it书童 > mysql > 正文

mysql 用户管理

mysql it书童 2019-10-04 17:10:11 0赞 0踩 378阅读 0评论

用户管理的相关指令

mysql> help Account Management;
CREATE USER
DROP USER
GRANT
RENAME USER
REVOKE
SET PASSWORD

新建用户

CREATE USER 'test1'@'localhost' identified BY 'test';
CREATE USER 'test'@'%' identified BY 'test';

用户名部分为“test1”,主机名默认为“%”(即对所有主机开放权限)

如果指定用户登录不需要密码,则可以省略identified BY部分

新建的用户在没授权的情况下,只可见information_schema数据库

GRANT 创建用户

GRANT USER语句可以用来创建帐户,通过该语句可以在user表中添加一条新记录

GRANT SELECT, UPDATE ON *.* TO 'test2'@'%' identified BY 'test';

不管是CREATE USER还是GRANT USER,在创建用户时,实际上都是在user表中添加一条新记录。

授权

查看权限

show grants for 'test1'@'%';    
select * from mysql.user where user='test1' \G   

设置权限

GRANT SELECT, INSERT, UPDATE ON test.user TO 'test1'@'%'; # 将test库的user表开放SELECT, INSERT, UPDATE权限给用户
GRANT ALL ON *.* TO 'test1'@'localhost';  # 将所有权限都开放给用户

更新权限之后需要刷新:

FLUSH PRIVILEGES; 

删除用户

drop user 'test1'@'localhost'; 

也可以直接通过DELETE从mysql.user表中删除对应的记录来删除用户

delete from mysql.user where `Host`='localhost' and `User`='test1'; 

修改密码

用户修改自身密码

SET PASSWORD = PASSWORD("ROOTPWD")

修改root用户密码

update user set Password = PASSWORD('slFEWF25322dfWE_DWE') where User = 'root';

root用户修改普通用户密码

SET PASSWORD FOR 'test2'@'%' = PASSWORD("test");
UPDATE mysql.user SET `Password` =password('test') WHERE `User`='test2' and `Host`='%';
关于我
一个文科出身的程序员,追求做个有趣的人,传播有价值的知识,微信公众号主要分享读书思考心得,不会有代码类文章,非程序员的同学请放心订阅
转载须注明出处:https://www.itshutong.com/articles/182/mysql-user-management