MySQL8.0创建用户和权限控制示例详解

 更新时间:2023年07月28日 10:04:38   作者:Kason  
这篇文章主要为大家介绍了MySQL8.0创建用户和权限控制实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一. 创建用户

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

username:你将创建的用户名

host:指定该用户在哪个主机上可以登陆,从本地登录填localhost,任意主机登陆填通配符%

password:登陆密码,密码可以为空,如果为空则该用户可以不需要密码也可登陆

例如:

CREATE USER 'one'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'one'@'192.168.1.101' IDENDIFIED BY '123456';
CREATE USER 'one'@'%' IDENTIFIED BY '123456';
CREATE USER 'one'@'%' IDENTIFIED BY '';
CREATE USER 'one'@'%';

二. 授权

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

说明:

privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL

databasename:数据库名,如果授予整个数据库权限填databasename.*

tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*

例子:

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

用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

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 'one'@'%' = PASSWORD("123456");

四. 撤销用户权限

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

相关说明:

privilege, databasename, tablename:同授权部分

例子:

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

注意:

假如你在给用户'one'@'%'授权的时候是这样的(或类似的):

GRANT SELECT ON test.user TO 'one'@'%',

则在使用

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

命令并不能撤销该用户对test数据库中user表的SELECT 操作。

相反,如果授权使用的是

GRANT SELECT ON *.* TO 'one'@'%';
则
REVOKE SELECT ON test.user FROM 'one'@'%';

命令也不能撤销该用户对test数据库中user表的Select权限。

具体信息可以用如下查看。

SHOW GRANTS FOR 'one'@'%';

五.删除用户

DROP USER 'username'@'host';

六.遇到的问题

创建完成后用Navicat创建表遇到了报错:

Access denied; you need (at least one of) the PROCESS privilege(s)

根据提示是缺少PROCESS权限,赋予后问题解决

mysql> grant process on MyDB.* to test;
ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES

第一次授予这样的权限,错误原因是process权限是一个全局权限,不可以指定在某一个库上(个人测试库为MyDB),所以,把授权语句更改为如下即可:

mysql> grant process on *.* to test;
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

如果不给拥有授予PROESS权限 ,show processlist命令只能看到当前用户的线程,而授予了PROCESS权限后,使用show processlist就能看到所有用户的线程。官方文档的介绍如下:

SHOW PROCESSLIST shows you which threads are running. 
You can also get this information from the INFORMATION_SCHEMA PROCESSLIST table 
or the mysqladmin processlist command. 
If you have the PROCESS privilege, you can see all threads. Otherwise, 
you can see only your own threads (that is, threads associated with the 
MySQL account that you are using). If you do not use the FULL keyword,
 only the first 100 characters of each statement are shown in the Info field.

七.撤销用户的权限

REVOKE ALL ON test.* FROM 'username'@'host';

以上就是MySQL8.0创建用户和权限控制示例详解的详细内容,更多关于MySQL创建用户权限控制的资料请关注脚本之家其它相关文章!

相关文章

  • MySQL 表约束从基础约束到外键关联实战案例详解

    MySQL 表约束从基础约束到外键关联实战案例详解

    文章全面介绍了MySQL的核心表约束,结合PPT实战案例讲解用法、区别与避坑点,帮你设计出健壮的数据库表结构,通过实例展示了如何设计健壮的数据库表结构,并提供了约束选型和避坑指南,感兴趣的朋友跟随小编一起看看吧
    2026-04-04
  • Windows电脑安装mysqldump的详细教程

    Windows电脑安装mysqldump的详细教程

    本文详细介绍了在Windows电脑上安装和配置mysqldump的步骤,从下载MySQL社区版到将mysqldump添加到环境变量,再到使用mysqldump进行数据库备份,需要的朋友可以参考下
    2025-12-12
  • MySQL日期、时间、时间戳的获取与计算过程

    MySQL日期、时间、时间戳的获取与计算过程

    这篇文章主要介绍了MySQL日期、时间、时间戳的获取与计算过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • MySQL 8.0.29 安装配置方法图文教程(windows zip版)

    MySQL 8.0.29 安装配置方法图文教程(windows zip版)

    这篇文章主要为大家详细介绍了windows zip版MySQL 8.0.29 安装配置方法图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • win10下mysql5.7.21解压版安装教程

    win10下mysql5.7.21解压版安装教程

    这篇文章主要为大家详细介绍了win10下mysql5.7.21解压版安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • MySql学习day03:数据表之间的连接、查询详解

    MySql学习day03:数据表之间的连接、查询详解

    这篇文章主要介绍了MySql数据表之间的连接、查询,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Mycat搭建分库分表方式

    Mycat搭建分库分表方式

    文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效降低单表数据量过大导致的效率问题
    2025-01-01
  • MySQL中的数据类型binary和varbinary详解

    MySQL中的数据类型binary和varbinary详解

    binary和varbinary与char和varchar类型有点类似,不同的是binary和varbinary存储的是二进制的字符串,而非字符型字符串。下面这篇文章主要给大家介绍了关于MySQL中数据类型binary和varbinary的相关资料,介绍的非常详细,需要的朋友可以参考学习。
    2017-07-07
  • MySQLBackup备份数据库的操作过程

    MySQLBackup备份数据库的操作过程

    这篇文章主要介绍了MySQLBackup备份数据库的操作过程,包括安装部署和配置备份管理员的相关知识,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • mysql缓冲和缓存设置详解

    mysql缓冲和缓存设置详解

    本文主要给大家讲解的是mysql优化过程中比较重要的2个参数缓冲和缓存的设置,希望大家能够喜欢
    2016-12-12

最新评论