博客
关于我
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 常见ALTER TABLE操作
    查看>>
    Mysql 报错 Field 'id' doesn't have a default value
    查看>>
    MySQL 报错:Duplicate entry 'xxx' for key 'UNIQ_XXXX'
    查看>>
    mysql 排序id_mysql如何按特定id排序
    查看>>
    Mysql 提示:Communication link failure
    查看>>
    mysql 插入是否成功_PDO mysql:如何知道插入是否成功
    查看>>
    Mysql 数据库InnoDB存储引擎中主要组件的刷新清理条件:脏页、RedoLog重做日志、Insert Buffer或ChangeBuffer、Undo Log
    查看>>
    mysql 数据库备份及ibdata1的瘦身
    查看>>
    MySQL 数据库备份种类以及常用备份工具汇总
    查看>>
    mysql 数据库存储引擎怎么选择?快来看看性能测试吧
    查看>>
    MySQL 数据库操作指南:学习如何使用 Python 进行增删改查操作
    查看>>
    MySQL 数据库的高可用性分析
    查看>>
    Mysql 数据库重置ID排序
    查看>>
    Mysql 数据类型一日期
    查看>>
    MySQL 数据类型和属性
    查看>>
    Mysql 整形列的字节与存储范围
    查看>>
    MySQL 日期时间类型的选择
    查看>>
    MySQL 是如何加锁的?
    查看>>
    mysql 更新子表_mysql 在update中实现子查询的方式
    查看>>
    MySQL 有什么优点?
    查看>>