2022-04-13
天空没有一片云,一轮圆月在这一碧无际的大海里航行,孤独的,清冷的,它把它的光辉撒下来,地上,瓦上都染上了一层银白色,夜非常静。——巴金
官方文档:
https://dev.mysql.com/doc/refman/8.0/en/assigning-passwords.html
创建用户
1 | CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password'; |
修改密码
1 | ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password'; |
匿名用户登录,修改自身密码
1 | ALTER USER USER() IDENTIFIED BY 'password'; |
使用[mysqladmin
[1]](https://dev.mysql.com/doc/refman/8.0/en/mysqladmin.html)修改密码
1 | mysqladmin -u user_name -h host_name password "password" |
注意修改失效时检查用户使用的检验plugin
1 | use mysql; |
注意我们上方使用的账户名称语法为:
1 | '用户名'@'主机名' |
主机名用于限制连接的ip
并且@'主机名'
这一部分是可选的,默认为@'%'
,我们甚至可以指定ip
范围和网关
1 | CREATE USER 'david'@'198.51.100.0/255.255.255.0'; |
修改用户主机名可以执行sql
1 | -- 允许root远程访问 |
AlTER USER
文档:https://dev.mysql.com/doc/refman/8.0/en/alter-user.html
重命名用户:https://dev.mysql.com/doc/refman/8.0/en/rename-user.html
1 | RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1'; |
权限:
https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html
刷新权限的sql
:https://dev.mysql.com/doc/refman/8.0/en/flush.html#flush-privileges
1 | -- 从MySQL系统授权表中重新读取权限 |
常用的授权sql
命令为GRANT
:
https://dev.mysql.com/doc/refman/8.0/en/grant.html
1 | -- 赋予'someuser'@'somehost'所有数据库的所有权限 |
然后是REVOKE
撤销权限:语法上和GRANT
相同
https://dev.mysql.com/doc/refman/8.0/en/revoke.html
1 | -- 如果指定的权限或角色或用户存在,移除他的SELECT权限 |
注意移除权限并不会移除用户,删除用户可以用DROP USER
:
https://dev.mysql.com/doc/refman/8.0/en/drop-user.html
1 | -- 删除'jeffrey'@'localhost'用户 |
我们更改权限后可以执行FLUSH PRIVILEGES;
立即生效
mysql提供的工具 ↩︎