【MySQL】(12)用户管理

文章详细介绍了MySQL中如何管理用户,包括创建用户、设置权限、回收权限、删除用户以及修改用户密码的步骤和相关SQL命令。用户信息存储在mysql库的user表中,权限如ALLPRIVILEGES、CREATE等可以通过GRANT和REVOKE命令进行分配和撤销。密码修改可通过ALTERUSER或SETPASSWORD命令完成。
摘要由CSDN通过智能技术生成

用户信息

MySQL 中的用户信息,都存储在系统数据库 mysql 中的 user 表中

MariaDB [mysql]> select host, user, authentication_string from user;
+----------------+------+-----------------------+
| host           | user | authentication_string |
+----------------+------+-----------------------+
| localhost      | root |                       |
| vm-4-13-centos | root |                       |
| 127.0.0.1      | root |                       |
| ::1            | root |                       |
| localhost      |      |                       |
| vm-4-13-centos |      |                       |
+----------------+------+-----------------------+
6 rows in set (0.01 sec)
  • host 表示这个用户可以从哪个主机登陆,如果是 localhost,则表示只能从主机登陆
  • user 用户名
  • authentication_string 加密后的用户密码(我们到现在还没设置过密码,所以是空白)
  • *_priv 用户拥有的权限

创建用户

  1. 使用具有管理员权限的 MySQL 用户登录到 MySQL 服务器。

  2. 执行以下 SQL 命令创建用户:

    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
    

    在上述命令中,将 'username' 替换为要创建的用户名,'localhost' 替换为用户允许登录的主机名或 IP 地址,'password' 替换为用户的密码。

    例:创建用户名为 “john”,密码为 “password123” 的用户,并允许该用户从任何主机登录,可以执行以下命令:

    CREATE USER 'john'@'%' IDENTIFIED BY 'password123';
    
  3. 执行以下命令使更改生效:

    FLUSH PRIVILEGES;
    

用户权限

下表列出了 MySQL 数据库中常见的权限及其描述:

权限描述
ALL PRIVILEGES所有权限,包括创建、修改和删除数据库、表以及执行所有操作权限
CREATE创建新数据库或表
ALTER修改已存在的数据库或表
DROP删除数据库或表
SELECT查询(读取)数据
INSERT插入新数据
UPDATE更新(修改)已有数据
DELETE删除数据
GRANT OPTION授予或撤销权限
INDEX创建或删除索引
CREATE TEMPORARY TABLES创建临时表
LOCK TABLES锁定表
EXECUTE执行存储过程或函数
SHOW DATABASES查看数据库列表
SHOW VIEW查看视图定义
TRIGGER创建、修改和删除触发器
REFERENCES创建外键约束

给用户授权

语法

GRANT privileges ON database_name.table_name TO 'username'@'localhost' [identified by '密码'];

在上述命令中,privileges 是要授予的权限列表,可以使用逗号分隔多个权限。database_name 是要授权的数据库名称,table_name 是要授权的表名称。'username'@'localhost' 是要授权的用户名和主机名。

  • *.* 表示本系统的所有数据库的所有对象(表、视图、存储过程等)
  • 库.* 表示某个数据库的所有对象(表、视图、存储过程等)
  • identified by 可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户

  • 授予用户对所有数据库的完全访问权限:

    GRANT ALL [PRIVILEGES] ON *.* TO 'username'@'localhost';
    
  • 授予用户对特定数据库的所有权限:

    GRANT ALL [PRIVILEGES] ON database_name.* TO 'username'@'localhost';
    
  • 授予用户对特定表的选择和插入权限:

    GRANT SELECT, INSERT ON database_name.table_name TO 'username'@'localhost';
    

回收权限

语法

REVOKE privileges ON database_name.table_name FROM 'username'@'host';

在上述命令中,privileges 是要回收的权限,database_name.table_name 是要回收权限的数据库和表的名称,'username'@'host' 是要回收权限的用户名和主机。

  • 回收用户对所有数据库的所有权限:

    REVOKE ALL [PRIVILEGES] ON *.* FROM 'username'@'host';
    
  • 回收用户对特定数据库的所有权限:

    REVOKE ALL [PRIVILEGES] ON database_name.* FROM 'username'@'host';
    
  • 回收用户对特定表的选择和插入权限:

    REVOKE SELECT, INSERT ON database_name.table_name FROM 'username'@'host';
    
  • 撤销用户的所有权限:

    REVOKE ALL [PRIVILEGES] ON *.* FROM 'username'@'host';
    

删除用户

  1. 使用具有管理员权限的 MySQL 用户登录到 MySQL 服务器。

  2. 执行以下 SQL 命令删除用户:

    DROP USER 'username'@'localhost';
    
  3. 执行以下命令以使更改生效:

    FLUSH PRIVILEGES;
    

修改密码

修改指定用户的密码:

方法一:使用 ALTER USER 命令

  1. 使用具有管理员权限的 MySQL 用户登录到 MySQL 服务器。

  2. 执行以下 SQL 命令修改用户密码:

    ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';
    
  3. 执行以下命令以使更改生效:

    FLUSH PRIVILEGES;
    

方法二:使用 SET PASSWORD 命令

  1. 使用具有管理员权限的 MySQL 用户登录到 MySQL 服务器。

  2. 执行以下 SQL 命令修改指定用户的密码:

    SET PASSWORD FOR 'username'@'localhost' = PASSWORD('new_password');
    
  3. 执行以下命令以使更改生效:

    FLUSH PRIVILEGES;
    

自己改自己密码:

SET PASSWORD = PASSWORD('new_password');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世真

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值