MySQL的权限管理与远程访问

MySQL的权限管理

1、授予权限

授权命令: grant 权限1,权限2,...权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令';

该权限如果发现没有该用户,则会直接新建一个用户。

java 复制代码
比如  
grant select,insert,delete,drop on atguigudb.* to li4@localhost  ;
 #给li4用户用本地命令行方式下,授予atguigudb这个库下的所有表的插删改查的权限。
java 复制代码
grant all privileges on *.* to joe@'%'  identified by '123'; 
#授予通过网络方式登录的的joe用户 ,对所有库所有表的全部权限,密码设为123。

2、收回权限

1)查看当前用户权限

java 复制代码
show grants;

2)收回权限命令:

java 复制代码
revoke  权限1,权限2,...权限n on 数据库名称.表名称  from用户名@用户地址 ; 
java 复制代码
REVOKE ALL PRIVILEGES ON mysql.* FROM joe@localhost;
#收回全库全表的所有权限。
java 复制代码
REVOKE select,insert,update,delete ON mysql.* FROM joe@localhost;
#收回mysql库下的所有表的插删改查权限。
 必须用户重新登录后才能生效。

3、查看权限

1)查看当前用户权限

java 复制代码
show grants; 

2)查看某用户的全局权限

java 复制代码
select  * from user ;

3)查看某用户的某个表的权限

java 复制代码
select * from tables_priv;

4、远程访问

(1)先 ping 一下数据库服务器的ip 地址确认网络畅通。

(2)关闭数据库服务的防火墙

java 复制代码
 service iptables stop 

(3) 确认Mysql中已经有可以通过远程登录的账户

select * from mysql.user where user='li4' and host='%';

(4)如果没有用户,先执行如下命令:

java 复制代码
 grant all privileges on *.*  to li4@'%'  identified by '123123'; 

(5)测试连接:

相关推荐
陈随易6 小时前
在 VSCode 里,把项目一键部署到服务器
前端·后端·程序员
海兰6 小时前
【数据库】tdsql(mysql8.0)优化思考三
数据库·redis
鱼樱前端7 小时前
我用 Claude Code 后,编码效率翻 3 倍。但更值钱的是别的。
前端·后端·ai编程
犀利豆7 小时前
Claude code tools 研究系列-开篇(AskUserQuestion)
后端
煎饼学大模型7 小时前
Agent 的“大脑-手“解耦架构:当推理层和工具执行层各自独立演进
数据库·人工智能·oracle·架构·agent
头发还在的女程序员8 小时前
医院陪诊管理系统怎么选择?——2026 年选型避坑与架构参考
java·开发语言·陪诊系统·陪诊app·医院陪诊陪护
CodeStats8 小时前
【Spring事务】Spring事务注解 @Transactional 完整体系:从 MySQL 隔离级别到 MyBatis 原理详解
java·spring·mybatis·事务·transactional
我命由我123459 小时前
Android 开发问题:为 PDFView 设置一个带有黑色边框的背景 drawable,但边框没有生效
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
暖和_白开水10 小时前
数据分析agent(十三_3):docker mysql容器镜像服务的异常错误
mysql·docker·容器
颜酱10 小时前
06 | 把 meta_config 同步进 MySQL(生成阶段)
前端·人工智能·后端