博客
关于我
mysql 用户管理和权限设置
阅读量:794 次
发布时间: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/

    你可能感兴趣的文章
    mabatis 中出现< 以及> 代表什么意思?
    查看>>
    Mac book pro打开docker出现The data couldn’t be read because it is missing
    查看>>
    MAC M1大数据0-1成神篇-25 hadoop高可用搭建
    查看>>
    mac mysql 进程_Mac平台下启动MySQL到完全终止MySQL----终端八步走
    查看>>
    Mac OS 12.0.1 如何安装柯美287打印机驱动,刷卡打印
    查看>>
    MangoDB4.0版本的安装与配置
    查看>>
    Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
    查看>>
    mapping文件目录生成修改
    查看>>
    MapReduce程序依赖的jar包
    查看>>
    mariadb multi-source replication(mariadb多主复制)
    查看>>
    MariaDB的简单使用
    查看>>
    MaterialForm对tab页进行隐藏
    查看>>
    Member var and Static var.
    查看>>
    memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
    查看>>
    memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
    查看>>
    Memcached:Node.js 高性能缓存解决方案
    查看>>
    memcache、redis原理对比
    查看>>
    memset初始化高维数组为-1/0
    查看>>
    Metasploit CGI网关接口渗透测试实战
    查看>>
    Metasploit Web服务器渗透测试实战
    查看>>