博客
关于我
mysql 用户管理和权限设置
阅读量:796 次
发布时间: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 的mysql_secure_installation安全脚本执行过程介绍
    查看>>
    MySQL 的Rename Table语句
    查看>>
    MySQL 的全局锁、表锁和行锁
    查看>>
    mysql 的存储引擎介绍
    查看>>
    MySQL 的存储引擎有哪些?为什么常用InnoDB?
    查看>>
    mysql 索引
    查看>>
    MySQL 索引失效的 15 种场景!
    查看>>
    MySQL 索引深入解析及优化策略
    查看>>
    MySQL 索引的面试题总结
    查看>>
    mysql 索引类型以及创建
    查看>>
    MySQL 索引连环问题,你能答对几个?
    查看>>
    Mysql 索引问题集锦
    查看>>
    Mysql 纵表转换为横表
    查看>>
    mysql 编译安装 window篇
    查看>>
    mysql 网络目录_联机目录数据库
    查看>>
    MySQL 聚簇索引&&二级索引&&辅助索引
    查看>>
    Mysql 脏页 脏读 脏数据
    查看>>
    mysql 自增id和UUID做主键性能分析,及最优方案
    查看>>
    Mysql 自定义函数
    查看>>
    mysql 行转列 列转行
    查看>>