当前位置:网站首页>学长告诉我,大厂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进行连接的。
在介绍这两种方案时发现了很多可以扩展的知识点,也一并写了出来,当你看这篇文章时就不用再一次进行查资料了。
“
坚持学习、坚持写作、坚持分享是咔咔从业以来所秉持的信念。愿文章在偌大的互联网上能给你带来一点帮助,我是咔咔,下期见。
”
边栏推荐
- [Brave food, not afraid to write the linked list] The problem of the penultimate node of the linked list
- Codeforces 814 C. An impassioned circulation of affection (dp)
- 从产品维度来看 我们为什么不能完全信任Layer2?
- ISO9001在讲什么?过程方法和风险思维
- 一文带你搞懂中断按键驱动程序之poll机制
- "Time Series Database" uses cassandra to scan time series data
- FastReport.Net 2022.2.17 Crack
- 首次入选OSDI顶会!腾讯提出超大规模推荐系统的模型低延时更新方案
- POJ 1026 Cipher (置换群)
- 3 injured in 'electrical accident' at Google data center
猜你喜欢
2022年裁员潮,失业程序员何去何从?
用proteus直接仿真stm32-可以完全丢弃编程器
【勇敢饭饭,不怕刷题之链表】有序链表的合并
Redis (three) - detailed configuration file, publish and subscribe, new data types
中小规模网站架构
[Brave food, not afraid of the linked list of brushing questions] Merging of ordered linked lists
振弦传感器及核心VM系列振弦采集模块
STM32 encapsulation ESP8266 a key configuration function: implementations of AP mode and the STA mode switch, server and the client to create
The impact of development mode on testing
ECCV 2022 | 视频理解新框架X-CLIP:仅用微调的成本,达到预训练的全能
随机推荐
JWT 实现登录认证 + Token 自动续期方案
振弦传感器及核心VM系列振弦采集模块
组合模式:Swift 实现
杭电多校-Loop-(不确定性贪心+线段树)
基于UiAutomator2+PageObject模式开展APP自动化测试实战
从产品角度看 L2 应用:为什么说这是一个游乐场?
Double.doubleToLongBits()方法使用
Network Security Note 6 - Digital Certificates and Public Key Infrastructure
SQL与NoSQL最终会走向融合吗?
Text selection rounded style border-radius
HDU 1520 Anniversary party (tree dp)
MongoDB database notes
Unsafe的一些使用技巧
LeetCode_628_三个数的最大乘积
从脚本到剪辑,影像大师亲授的后期制作秘籍
Break through the dimensional barriers and let the dolls around you move on the screen!
【电商运营】你真的了解社交媒体营销(SMM)吗?
Hangdian Multi-School-Loop-(uncertainty greedy + line segment tree)
what is bsp in rtems
MLX90640 红外热成像仪测温传感器 手机 APP 软件 RedEye 连接详细