mysql创建用户以及给用户授予权限实现方式

 更新时间:2025年07月16日 10:18:41   作者:莪假裝堅強  
文章讲解了MySQL用户创建与授权方法,包括设置空密码、分配特定数据库表权限及全部权限,强调安全授权的重要性,并提及回收和修改权限的命令

新建用户

create user username identified by '123456';

说明:

  • username——你将创建的用户名,
  • password——该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

进入到mysql的客户端,在下图中可以看到,创建了一个用户名为xaiodong并且密码为123456的用户

这个时候创建的改用户只能看见一个库, information_schema

重新开一个窗口,使用改用户进行测试,下图中登录到了新创建的用户中。

使用show databases查看有哪些数据库的时候,可以看到只有一个数据库

对于information_schema数据库,是mysql默认自带的数据库,新创建的用户xaiodong可以查看改数据库的部分表,由于这是mysql自带的数据库,所以最好不用动它。

尝试使用改用户创建一个新的数据库的时候发现,没有无法创建,只是因为没有权限的问题,接下来,将会讲如何给改用户进行授权。

新用户授权

下面给用户授权的命令

grant all privileges on dbname.tbname to 'username'@'login ip' identified by 'password' with grant option;

详细说明:

  • grant all privileges 授予改用户对于数据库的所有权限
  • dbname = * 表示所有数据库(也就是dbname为*的时候)
  • tbname = * 表示所有表
  • login ip = % 表示任何 ip都是通过改用户进行登录
  • password 为空,表示不需要密码即可登录
  • with grant option 表示该用户还可以授权给其他用户

测试,目前在数据库中有一个数据库名为test2的数据库,在该数据库中有一张名字为user的表,将在root用户下,授予刚才新建的用户对于该数据库中该表的所有权限

grant all privileges on test2.user to 'xiaodong'@'%' identified by '123456' with grant option;

然后再新创建的用户xiaodong所在窗口中,查看数据库,可以看到刚才root用户授予权限的数据库test2

检测一下是否可以对该数据库进行操作呢,尝试往该数据库中插入一条数据

查入数据成功,说明给该用户的的授权成功

由于新用户只对test2用户的user表有所有的权限,所有目前该新用户还没有其它权限,比如使用该用户创建新的数据库。

给该新用户授予所有的权限

使用root用户登录之后使用下面的命令对于新用户授予该用户所有的权限

GRANT ALL PRIVILEGES ON *.* TO 'xiaodong'@'%' Identified by "123456";

下图为新用户登录之后的界面,这个时候可以发现xiaodong用户目前有了创建用户并且可以看到所有的数据库等几乎所有权限。

对于上面的操作中对于一个新的用户授予所有的数据库的所有权限是一个比较危险的操作,因此再对于一个新的用户(特别是不是很信任的用户),可以设置比较具体的权限。

下面将介绍如何授予比较具体的权限。

更具体的授权

可以将All替换成下面的10个比较细的权限,中间用逗哈进行隔开

GRANT ALL PRIVILEGES ON *.* TO 'aaa'@'%' Identified by "123456" WITH GRANT OPTION;

privileges 包括:

  • alter:修改数据库的表
  • create:创建新的数据库或表
  • delete:删除表数据
  • drop:删除数据库/表
  • index:创建/删除索引
  • insert:添加表数据
  • select:查询表数据
  • update:更新表数据
  • all:允许任何操作
  • usage:只允许登录

回收权限

命令详解

revoke privileges on dbname[.tbname] from username;

如下面为收回用户aaa的对于所有数据库的所有权限

revoke all privileges on *.* from aaa;

修改用户的密码

use mysql
select * from user

进入 mysql 库中

  • 修改密码
update user set password = password('qwe') where user = 'aaa';
  • 刷新权限
flush privileges

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解MySQL 用户权限管理

    详解MySQL 用户权限管理

    这篇文章主要介绍了MySQL 用户权限管理的相关资料,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下
    2021-04-04
  • MySQL向表中添加列方法实例

    MySQL向表中添加列方法实例

    要在MySQL的表中添加列,我们可以将ALTER命令与add column命令一起使用,下面这篇文章主要给大家介绍了关于MySQL向表中添加列的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • MySql添加新用户及为用户创建数据库和给用户分配权限方法介绍

    MySql添加新用户及为用户创建数据库和给用户分配权限方法介绍

    这篇文章主要介绍了MySql添加新用户及为用户创建数据库和给用户分配权限方法介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • mysql 5.7.23 安装配置方法图文教程

    mysql 5.7.23 安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql 5.7.23安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • MySQL sql_mode从入门到精通

    MySQL sql_mode从入门到精通

    sql_mode是MySQL中语法校验、数据校验、行为兼容的核心配置,本文就来详细的介绍一下MySQL sql_mode的使用,感兴趣的可以了解一下
    2026-03-03
  • MySQL实现创建存储过程并循环添加记录的方法

    MySQL实现创建存储过程并循环添加记录的方法

    这篇文章主要介绍了MySQL实现创建存储过程并循环添加记录的方法,涉及基本的mysql存储过程创建、调用相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • MySQL数据库开发的36条原则(小结)

    MySQL数据库开发的36条原则(小结)

    这篇文章主要介绍了MySQL数据库开发的36条原则(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • MySQL中的触发器trigger用法解析

    MySQL中的触发器trigger用法解析

    这篇文章主要介绍了MySQL中的触发器trigger用法解析,触发器是由 事件来触发 某个操作,这些事件包括 INSERT、UPDATE、DELETE事件,事件就是指用户的动作或者触发某项行为,需要的朋友可以参考下
    2023-08-08
  • MySQL数据库约束详解

    MySQL数据库约束详解

    mysql常见约束有:1、非空约束“not null”;2、唯一性约束“unique”;3、主键约束“primary key”;4、外键约束“foreign key”;5、默认值约束“Default”等等。
    2022-10-10
  • 安装Mysql时可能会遇到的一些疑难杂症

    安装Mysql时可能会遇到的一些疑难杂症

    这篇文章主要给大家介绍了关于安装Mysql时可能会遇到的一些疑难杂症,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01

最新评论