博客
关于我
mysql 用户管理和权限设置
阅读量:793 次
发布时间:2023-02-11

本文共 2501 字,大约阅读时间需要 8 分钟。

MySQL 用户管理权限详解

在MySQL中,用户管理是系统管理员(DBA)日常工作中的重要环节。本文将详细介绍如何创建、授权、设置密码、撤销权限以及删除用户等操作。


一、创建用户

命令示例

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

操作说明

  • username:指定创建的用户名。
  • host:指定该用户可以登录的主机地址。如果是本地用户,可以使用localhost,如果希望用户可以从任意远程主机登录,可以使用通配符%
  • password:用户的登录密码,密码可以为空(此时用户无需密码登录)。

示例

CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';CREATE USER 'pig'@'192.168.1.101' IDENTIFIED BY '123456';CREATE USER 'pig'@'%' IDENTIFIED BY '123456';CREATE USER 'pig'@'%' IDENTIFIED BY '';CREATE USER 'pig'@'%';

二、授权权限

命令示例

GRANT privileges ON databasename.tablename TO 'username'@'host';

操作说明

  • privileges:用户的操作权限,例如SELECTINSERTUPDATE等。如果需要授予所有权限,可以使用ALL
  • databasename:数据库名称。
  • tablename:表名称。如果需要授予所有数据库和表的相应权限,可以使用*.*表示。

示例

GRANT SELECT, INSERT ON test.user TO 'pig'@'%';GRANT ALL ON *.* TO 'pig'@'%';GRANT ALL ON maindataplus.* TO 'pig'@'%';

注意事项

  • 如果使用GRANT命令授权的用户不能对其他用户授权,请在授权时使用WITH GRANT OPTION选项。
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

三、设置与更改用户密码

命令示例

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

操作说明

  • 如果是当前登录用户,可以使用以下命令:
SET PASSWORD = PASSWORD("newpassword");

示例

SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

四、撤销用户权限

命令示例

REVOKE privilege ON databasename.tablename FROM 'username'@'host';

操作说明

  • privilege:需要撤销的权限。
  • databasename:数据库名称。
  • tablename:表名称。

示例

REVOKE SELECT ON *.* FROM 'pig'@'%';

注意事项

  • 使用REVOKE命令时,需要确保权限是通过GRANT命令授予的。如果使用的是GRANT SELECT ON *.*,则需要使用REVOKE SELECT ON *.*才能撤销权限。

五、删除用户

命令示例

DROP USER 'username'@'host';

操作说明

  • 查看用户信息
  • SELECT host, user, password FROM user;
    1. 删除用户
    2. DROP USER 'jack'@'localhost';

      权限说明

      权限 权限级别 说明
      CREATE 数据库、表或索引 创建数据库、表或索引
      DROP 数据库或表 删除数据库或表
      GRANT OPTION 数据库、表或程序 赋予权限选项
      REFERENCES 数据库或表 引用外键关系
      ALTER 修改表结构
      DELETE 删除数据
      INDEX 索引权限
      INSERT 插入权限
      SELECT 查询权限
      UPDATE 更新权限
      CREATE VIEW 视图 创建视图权限
      SHOW VIEW 视图 查看视图权限
      ALTER ROUTINE 存储过程 更改存储程序权限
      CREATE ROUTINE 存储程序 创建存储程序权限
      EXECUTE 存储程序 执行存储程序权限
      FILE 文件 访问服务器文件
      CREATE TEMPORARY TABLES 临时表 创建临时表权限
      LOCK TABLES 表锁 锁表权限
      CREATE USER 用户 创建用户权限
      RELOAD 服务器 执行flush-commands权限
      PROCESS 进程 查看进程权限
      REPLICATION CLIENT 复制 复制权限
      REPLICATION SLAVE 复制 复制权限
      SHOW DATABASES 数据库 查看数据库权限
      SHUTDOWN 服务器 关闭数据库权限
      SUPER 服务器 权限操作kill线程

      权限分配示例

      1. 创建一个可以从本地登录的超级用户

      mysql> GRANT ALL PRIVILEGES ON *.* TO jack@'localhost' IDENTIFIED BY "jack" WITH GRANT OPTION;

      2. 刷新权限

      mysql> flush privileges;

      3. 查看用户权限

      mysql> SHOW GRANTS FOR 'jack'@'localhost';

      4. 删除用户

      mysql> DROP USER 'jack'@'localhost';

      5. 用户重命名

      mysql> RENAME USER 'jack'@'%' TO jim@'%';

      通过以上命令,可以轻松管理MySQL用户的权限,确保数据库安全和高效运行。

    转载地址:http://lfbfk.baihongyu.com/

    你可能感兴趣的文章
    mySQL 多个表求多个count
    查看>>
    mysql 多字段删除重复数据,保留最小id数据
    查看>>
    MySQL 多表联合查询:UNION 和 JOIN 分析
    查看>>
    MySQL 大数据量快速插入方法和语句优化
    查看>>
    mysql 如何给SQL添加索引
    查看>>
    mysql 字段区分大小写
    查看>>
    mysql 字段合并问题(group_concat)
    查看>>
    mysql 字段类型类型
    查看>>
    MySQL 字符串截取函数,字段截取,字符串截取
    查看>>
    MySQL 存储引擎
    查看>>
    mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
    查看>>
    MySQL 存储过程参数:in、out、inout
    查看>>
    mysql 存储过程每隔一段时间执行一次
    查看>>
    mysql 存在update不存在insert
    查看>>
    Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势
    查看>>
    Mysql 学习总结(87)—— Mysql 执行计划(Explain)再总结
    查看>>
    Mysql 学习总结(88)—— Mysql 官方为什么不推荐用雪花 id 和 uuid 做 MySQL 主键
    查看>>
    Mysql 学习总结(89)—— Mysql 库表容量统计
    查看>>
    mysql 实现主从复制/主从同步
    查看>>
    mysql 审核_审核MySQL数据库上的登录
    查看>>