文章

mysql用户管理

mysql用户管理

菜鸟文档

创建用户

CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’;

  • username:用户名。
  • host:指定用户可以从哪些主机连接。例如,localhost 仅允许本地连接,% 允许从任何主机连接。
  • password:用户的密码。
CREATE USER 'test'@'%' IDENTIFIED BY 'password123';

授权权限

GRANT privileges ON database_name.* TO ‘username’@’host’;

创建用户后,你需要授予他们访问权限,使用 GRANT 命令来授予权限:

  • privileges:所需的权限,如 ALL PRIVILEGESSELECTINSERTUPDATEDELETE 等。
  • database_name.*:表示对某个数据库或表授予权限。database_name.* 表示对整个数据库的所有表授予权限,database_name.table_name 表示对指定的表授予权限。
  • TO 'username'@'host':指定授予权限的用户和主机。
1
GRANT ALL PRIVILEGES ON test_db.* TO 'john'@'localhost';

刷新权限

FLUSH PRIVILEGES;

授予或撤销权限后,需要刷新权限使更改生效。

查看用户权限

SHOW GRANTS FOR ‘username’@’host’;

撤销权限

REVOKE privileges ON database_name.* FROM ‘username’@’host’;

1
REVOKE ALL PRIVILEGES ON test_db.* FROM 'john'@'localhost';

删除用户

DROP USER ‘username’@’host’;

要删除一个 MySQL 用户,可以使用 DROP USER 命令:

  • 'username'@'host':指定要删除的用户名和主机。
1
DROP USER 'john'@'localhost';

修改用户密码

ALTER USER ‘username’@’host’ IDENTIFIED BY ‘new_password’;

要修改用户的密码,可以使用 ALTER USER 命令:

  • 'username'@'host':指定要修改密码的用户名和主机。
  • 'new_password':新的密码。
1
ALTER USER 'john'@'localhost' IDENTIFIED BY 'newpassword456';

修改用户主机

要更改用户的主机(即允许从哪些主机连接),可以先删除用户,再重新创建一个新的用户。

删除旧用户

DROP USER ‘username’@’host’;

1
DROP USER 'john'@'localhost';

重新创建用户并指定新的主机

CREATE USER ‘username’@’new_host’ IDENTIFIED BY ‘password’;

1
CREATE USER 'john'@'%' IDENTIFIED BY 'password123';

查询主机用户

SELECT User, Host FROM mysql.user;

创建用户时指定权限

在创建用户时,也可以同时授予权限(在 MySQL 8.0.16 及更高版本):

CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;

  • 'username'@'host':指定要创建的用户名和主机。
  • 'password':用户的密码。
  • WITH GRANT OPTION:允许用户授予权限给其他用户。
1
CREATE USER 'john'@'localhost' IDENTIFIED BY 'password123' WITH GRANT OPTION;

GRANT privileges ON database_name.* TO ‘username’@’host’;

创建用户后,你需要授予他们访问权限,使用 GRANT 命令来授予权限:

  • privileges:所需的权限,如 ALL PRIVILEGESSELECTINSERTUPDATEDELETE 等。
  • database_name.*:表示对某个数据库或表授予权限。database_name.* 表示对整个数据库的所有表授予权限,database_name.table_name 表示对指定的表授予权限。
  • TO 'username'@'host':指定授予权限的用户和主机。
1
GRANT ALL PRIVILEGES ON test_db.* TO 'john'@'localhost';
本文由作者按照 CC BY 4.0 进行授权