it编程 > 数据库 > Mysql

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

20人参与 2025-07-16 Mysql

新建用户

create user username identified by '123456';

说明:

进入到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;

详细说明:

测试,目前在数据库中有一个数据库名为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 包括:

回收权限

命令详解

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

您想发表意见!!点此发布评论

推荐阅读

MySQL自定义order by排序规则的示例详解

07-16

一文揭秘MySQL索引失效原因与优化方案

07-16

MySQL  把查询结果更新或者插入到新表的操作方法

07-16

MySQL解决外键约束冲突的详细步骤和代码示例

07-16

MySQL中自增长序列(@i:=@i+1)的用法示例详解

07-16

MySQL 更新字段的值为当前最大值加1的解决方案

07-16

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论