Jinyun's Notes

没什么天赋,爱好也不多,但愿坚持做些喜欢的事情

0%

MySQL 用户管理

在很多时候,我们并不会直接利用 MySQLroot 用户进行项目的开发,一般的,我们都会创建一个具有部分权限的用户

创建用户

创建本地用户

1
CREATE USER 'develop'@'localhost' IDENTIFIED BY ']8Mgbs6m{4)z?DYJU8XA';

创建远程用户

1
2
3
4
5
6
7
8
9
// 从 192.168.10.10 / 192.168.10.11 登陆的用户
CREATE USER 'develop'@'192.168.10.10' IDENTIFIED BY ']8Mgbs6m{4)z?DYJU8XA';
CREATE USER 'develop'@'192.168.10.11' IDENTIFIED BY ']8Mgbs6m{4)z?DYJU8XA';

// 从任意 IP 登陆的用户
CREATE USER 'develop'@'%' IDENTIFIED BY ']8Mgbs6m{4)z?DYJU8XA';

// 不做指定默认为 '%'
CREATE USER 'develop' IDENTIFIED BY ']8Mgbs6m{4)z?DYJU8XA';

修改密码

1
2
3
4
5
6
7
8
// 查询用户
SELECT User, Host, HEX(authentication_string) FROM mysql.user;

// 修改密码
ALTER user 'develop'@'localhost' IDENTIFIED BY ']8Mgbs6m{4)z?DYJU8XA';
或者
UPDATE user SET authentication_string = PASSWORD(']8Mgbs6m{4)z?DYJU8XA'), password_expired = 'N' WHERE User = 'develop' AND Host = 'localhost';
FLUSH PRIVILEGES;

删除用户

1
2
3
USE mysql;
DELETE FROM `user` WHERE `user` = 'develop' AND `host` = '192.168.10.11';
FLUSH PRIVILEGES;

赋予用户权限

其中的 test.* 表示对 test 数据库的所有操作授予提供的权限

1
2
3
4
5
6
7
8
// 赋予部分权限
GRANT SELECT, DELETE, UPDATE, INSERT ON test.* TO develop@'192.168.10.10' IDENTIFIED BY ']8Mgbs6m{4)z?DYJU8XA';
FLUSH PRIVILEGES;

// 赋予所有权限
GRANT ALL PRIVILEGES ON test.* TO 'develop'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON test.* TO 'develop'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

查看用户权限

1
2
3
4
5
// 查看本地 develop 的权限,没有指定后面的 localhost 则默认为 '%'
SHOW GRANTS FOR develop@'localhost';

// 查看指定 host 的 develop 的权限
SHOW GRANTS FOR develop@'192.168.10.10';

撤销用户权限

1
2
3
4
5
// 撤销 INSERT 权限
REVOKE INSERT ON test.* FROM develop@'192.168.10.10';

// 撤销所有权限
REVOKE ALL ON test.* FROM develop@'192.168.10.10';
本笔记是笔者在学习和工作中的一些整理,如对您有用,请鼓励我继续写作