mysql5.7 & 8 用户权限管理
前言#
mysql 读写性能相对中规中矩,适合大多数情况下使用。本博文记录一下 mysql 关于用户相关的操作
准备工作#
通过 mysql 的默认账号 root 来登录 mysql, mysql默认root账号没有密码
创建数据库:
CREATE DATABASE 【数据库名】 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql -u root -h 127.0.01 -p -P3306
查询当前创建用户#
方式一#
mysql> select host, user, password from mysql.user; # 5.7版本之前的
mysql> select host, user, authentication_string from mysql.user; # 5.7版本之后的,包括5.7
方式二(推介)#
mysql> select distinct concat('User: ''',user,'''@''',host,''';') as query from mysql.user;
查询用户的权限#
all表示所有权限
select表示只查权限
update表示只改权限
delete表示只删权限等。
查询具体某个用户的权限(方法一)(推荐)#
mysql> show grants for "user"@"host"; # "user"@"host" 填写对应用户信息
查询具体某个用户的权限(方法二)#
查询root用户的权限
mysql> select * from mysql.user where user='root'\G;
创建新用户#
新创建的用户,默认情况下是没有任何权限的
mysql> create user "用户名"@"IP地址" identified by "密码";
案例
# 创建用户【shuiche】密码为: 123456,host值默认为%。
mysql> create user "shuiche" identified by "123456";
# 创建用户【shuiche】密码为: 123456,手动指定host值为%。
mysql> create user "shuiche"@"%" identified by "123456";
mysql.user表中Host为%的含义. Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。. 这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。. 而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。. 如果Host=%,表示所有IP都有连接权限。.
给用户授权#
常用的权限类型有以下几种:
all privileges:所有权限。
select:读取权限。
create:创建权限。
delete:删除权限。
update:更新权限。
drop:删除数据库、数据表权限。
允许访问所有数据库下的所有表#
mysql> grant 权限类型 on 数据库名.表名 to '用户名'@'ip地址' ;
允许访问指定数据库(test)下的所有表#
mysql> grant all privileges on test.* to '用户名'@'指定ip' ;
允许访问指定数据库下的指定表(test.test)#
mysql> grant all privileges on test.test to '用户名'@'指定ip' ;
删除用户权限(使用root用户操作)#
mysql> revoke select on test.* from "shuiche"@"%";
mysql> revoke all on tornado.* from "shuiche"@"%";
删除用户#
# 方法一
mysql> drop user "haidon"@"%";
# 方法二
mysql> delete from mysql.user where user="haidon";
刷新权限(使权限立即生效) (重要)#
mysql> flush privileges;
作者:水车
出处:https://www.cnblogs.com/shuiche/p/14777803.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
推荐一个激活软件下载站:mac.shuiche.cc
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2017-05-17 CentOS7使用firewalld打开关闭防火墙与端口