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

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

文章图片

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

文章图片

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

文章图片

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

文章图片

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

文章图片

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

文章图片


大家好 , 我是咔咔 不期速成 , 日拱一卒

一、背景之前待的几个公司 , 数据库、服务器权限都是给所有后端直接拉满的 , 但也会出现员工离职的情况 , 每次有人离职时都需要改数据库密码、服务器密码 。
每次密码修改后得告知所有开发修改本地密码 , 但这样的事情也不是经常发生 , 公司虽小但很稳定 。
假设你所待的公司是一个开发非常多的公司 , 有可能你待了一年还没认识全 , 人员流动的速度也非常快 , 这时上面那种方案的执行成本就非常高了 。
若此时把这个问题抛给你 , 让你解决你会有什么方案?
【|学长告诉我,大厂MySQL都是通过SSH连接的】接下来给大家介绍两种方案 , 一种传统方案另一种是通过SSH来实现的 。
二、传统方案MySQL版本:8.0.26
其中最简单的方案就是给每个人在数据库添加一个账号 , 具体步骤如下:
创建新用户
create user \"kaka\"@\"%\" identified by 'qwerty123456';

其中kaka为自定义的用户名;%为登录域名 , host为'%'时表示为 任意IP , 为localhost时表示本机 , 或者填写指定的IP地址;qwerty123456为密码
为用户授权
grant all privileges on kaka.* to \"kaka\"@\"%\" with grant option;



grant all on *.* to \"kaka\"@\"%\";

其中kaka.*kaka为数据名 , *为所有表 , 如果想授权全部表就把kaka.*写成*.* , 当然这里是以开发库为基础的 , 所有的权限都得给 。 当前也可以给予部分权限 。
刷新权限
flush privileges;

使用用户名:kaka进行登录
发现kaka用户只有两个库 , kaka库就是授权的库 , 当切换系统库时发现是没有权限的 。
在切到kaka库 , 是可以做正常的curd操作的


给予部分权限
grant update on kaka.* to \"kaka\"@\"%\";

flush privileges;

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

撤销全部权限
这块有点小插曲 , 当执行撤销命令后报了这样一个错
Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation

查阅了一下官方文档 , 原因是由于root用户没有SYSTEM_USER权限 , 把权限加入后即可解决
grant system_user on *.* to 'root';