|学长告诉我,大厂MySQL都是通过SSH连接的( 二 )

revoke all privileges grant option from kaka;



revoke all privileges on kaka.* from kaka;

flush privileges;

插销部分权限
revoke select on kaka.* from kaka;

kaka.*为表名 , kaka为用户名
员工离职删除用户即可
drop from kaka;

kaka 为用户名
嗯 , 成功的把MySQL权限给复习了一遍.....
三、通过SSH隧道连接MySQL数据库准备工作

主机名角色IP端口
kaka1MySQL主机47.93.12.2043306
kaka2远程服务器8.142.40.20233888
修改MySQL主机仅允许远程服务器连接
use mysql;

update user set host='8.142.40.202' where user = \"root\";


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

配置SSH连接MySQL主机
在远程主机执行
ssh -fN -L33888:47.93.12.204:3306 root@8.142.40.202

在使用SSH连接使用时发现部分人员说是连接一直在断 , 影响了正常开发 , 只需要加上下面这个参数重新执行即可 , 这个参数是每60秒发送一个KeepAlive请求 , 保证终端不会因为超时空闲而断开连接
ssh -o ServerAliveInterval=60 -fN -L33888:47.93.12.204:3306 root@8.142.40.202

注意前边是远程服务器   后边是远程主机的服务器账号、服务器地址
命令执行完成后 , 可以通过命令
mysql -h 127.0.0.1 -P 33888 -uroot -p

密码是MySQL服务器的 MySQL密码

四、本地开发连接上述通过两台服务器给大家做了演示 , 接下来看看开发人员如何连接开发数据库
同样在本地也执行命令
ssh -fN -L3306:47.93.12.204:3306 root@8.142.40.202

在host配置文件中进行域名映射
// 127.0.0.1 MySQL服务器地址
127.0.0.1 8.142.40.202

使用Navicat进行连接

可以看到已经连接上了

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

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

执行命令
usermod -s /sbin/nologin niuniu 

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

再看看本地Navicat连接是否正常
截止到这里就已经完成了所有的安全措施 。 六、扩展一:WITH GRANT OPTION这个参数是可选的 , 如果不加 , 那这句话到这就结束了 , 这个用户就是一级 , 他不能再去建子用户了 , 如果给了 , 就代表可以建子账号 , 当然子用户能分出去的权限仅限他自己有的权限