当前位置:网站首页>学长告诉我,大厂MySQL都是通过SSH连接的
学长告诉我,大厂MySQL都是通过SSH连接的
2022-08-10 10:55:00 【51CTO】
大家好,我是咔咔 不期速成,日拱一卒
一、背景
之前待的几个公司,数据库、服务器权限都是给所有后端直接拉满的,但也会出现员工离职的情况,每次有人离职时都需要改数据库密码、服务器密码。
每次密码修改后得告知所有开发修改本地密码,但这样的事情也不是经常发生,公司虽小但很稳定。
假设你所待的公司是一个开发非常多的公司,有可能你待了一年还没认识全,人员流动的速度也非常快,这时上面那种方案的执行成本就非常高了。
若此时把这个问题抛给你,让你解决你会有什么方案?
接下来给大家介绍两种方案,一种传统方案另一种是通过SSH来实现的。

二、传统方案
MySQL版本:8.0.26
其中最简单的方案就是给每个人在数据库添加一个账号,具体步骤如下:
创建新用户
其中kaka为自定义的用户名;%为登录域名,host为'%'时表示为 任意IP,为localhost时表示本机,或者填写指定的IP地址;qwerty123456为密码
为用户授权
其中kaka.*,kaka为数据名,*为所有表,如果想授权全部表就把kaka.*写成*.*,当然这里是以开发库为基础的,所有的权限都得给。当前也可以给予部分权限。
刷新权限
使用用户名:kaka进行登录
发现kaka用户只有两个库,kaka库就是授权的库,当切换系统库时发现是没有权限的。
在切到kaka库,是可以做正常的curd操作的

给予部分权限
若想给多个权限,则逗号隔开即可,update,select,insert ....,执行完切记需要刷新权限,否则不会生效

撤销全部权限
这块有点小插曲,当执行撤销命令后报了这样一个错
查阅了一下官方文档,原因是由于root用户没有SYSTEM_USER权限,把权限加入后即可解决
插销部分权限
kaka.*为表名,kaka为用户名
员工离职删除用户即可
kaka 为用户名
嗯,成功的把MySQL权限给复习了一遍.....
三、通过SSH隧道连接MySQL数据库
准备工作
主机名 | 角色 | IP | 端口 |
kaka1 | MySQL主机 | 47.93.12.204 | 3306 |
kaka2 | 远程服务器 | 8.142.40.202 | 33888 |
修改MySQL主机仅允许远程服务器连接

此时在MySQL主机服务器是直接登录不了的

配置SSH连接MySQL主机
在远程主机执行
在使用SSH连接使用时发现部分人员说是连接一直在断,影响了正常开发,只需要加上下面这个参数重新执行即可,这个参数是每60秒发送一个KeepAlive请求,保证终端不会因为超时空闲而断开连接
注意前边是远程服务器 后边是远程主机的服务器账号、服务器地址
命令执行完成后,可以通过命令
密码是MySQL服务器的 MySQL密码

四、本地开发连接
上述通过两台服务器给大家做了演示,接下来看看开发人员如何连接开发数据库
同样在本地也执行命令
在host配置文件中进行域名映射
使用Navicat进行连接

可以看到已经连接上了

这样就强制让所有开发人员通过SSH来连接MySQL,当有一个开发离职后,只需要删除对应的服务器账号即可
五、限制Linux用户登录
你肯定也想到了,通过SSH连接使用的服务器账号密码,那么就意味着所有开发者都可以用过自己的账号密码进行登录服务器。
上有政策,下有对策,接下来看看如何限制用户登录服务器。
例如现在添加了用户niuniu,此时该用户是肯定可以连接到服务器的

可以看到当前用户通过Xsheel连接上了服务器,服务器权限还是给部分人开通比较好,接下来就来限制该用户登录服务器

执行命令
用户niuniu通过Xsheel登录服务器,可以看到返回当前账号不可用,说明我们想要的结果已经有了

再看看本地Navicat连接是否正常

截止到这里就已经完成了所有的安全措施。
六、扩展一:WITH GRANT OPTION
这个参数是可选的,如果不加,那这句话到这就结束了,这个用户就是一级,他不能再去建子用户了,如果给了,就代表可以建子账号,当然子用户能分出去的权限仅限他自己有的权限
注意一点,这里的操作只能分配给已有的账户,创建新账户需要另外的权限并且,还得有GRANT权限,不然的话就算有这个权限但是没有执行这个权限的权限
七、扩展二:Linux用户操作
添加用户
删除用户
设置密码
需要输入两遍,注意
八、总结
本文给大家介绍两种应对开发者离职后,数据库权限收回的方案。一种是通过MySQL本身字段的权限、另一种是通过SSH来连接,目前咔咔所在的公司是通过SSH进行连接的。
在介绍这两种方案时发现了很多可以扩展的知识点,也一并写了出来,当你看这篇文章时就不用再一次进行查资料了。
“
坚持学习、坚持写作、坚持分享是咔咔从业以来所秉持的信念。愿文章在偌大的互联网上能给你带来一点帮助,我是咔咔,下期见。
”
边栏推荐
- 4 of huawei offer levels, incredibly side is easing the bit in the interview ali?
- C#实战:基于ItextSharp技术标签生成小工具
- Gold, nine, silver and ten job-hopping seasons: technical interview questions and answers on Alibaba, Baidu, JD.com, and Meituan
- 阻塞 非阻塞 poll机制 异步
- 商城限时秒杀功能系统
- GPU加速Pinterest推荐模型,参数量增加100倍,用户活跃度提高16%
- What is an abstract class
- 《MySQL高级篇》六、索引的创建与设计原则
- chart.js horizontal column chart plugin
- leetcode:334. 递增的三元子序列
猜你喜欢

8月份DB-Engines 数据库排行榜最新战况

Unsafe的一些使用技巧

Redis6(一)——NoSQL数据库简介与Redis的安装

2023版揽胜运动曝光,安全、舒适一个不落

Text selection rounded style border-radius

网络安全笔记6——数字证书与公钥基础设施

关于“码农”的一点自嘲解构

L2 applications from a product perspective: why is it a playground?

【电商运营】你真的了解社交媒体营销(SMM)吗?

From the product dimension, why can't we fully trust Layer2?
随机推荐
中小规模网站架构
「业务架构」介绍BPMN第二部分-泳道
what is bsp in rtems
【勇敢饭饭,不怕刷题之链表】有序链表的合并
4 of huawei offer levels, incredibly side is easing the bit in the interview ali?
3D rotating text animation js special effects
Open Office XML 格式里如何描述多段具有不同字体设置的段落
"Time Series Database" uses cassandra to scan time series data
Several small projects that I have open sourced over the years
Some tips for using Unsafe
Gold, nine, silver and ten job-hopping seasons: technical interview questions and answers on Alibaba, Baidu, JD.com, and Meituan
金九银十跳槽旺季:阿里、百度、京东、美团等技术面试题及答案
第2章-矩阵及其运算-矩阵运算(2)
POJ 1026 Cipher (Permutation Groups)
8月份DB-Engines 数据库排行榜最新战况
LeetCode_443_压缩字符串
OSSCore 开源解决方案介绍
网络文化经营许可证
「首席工程师」首席(Principal )工程师修炼之道
POJ 2891 Strange Way to Express Integers (扩展欧几里得)