数据库--创建安全访问账户

数据库–创建安全访问账户

是否经常听过某某公司离职程序员删库跑路这样的段子?关于这里面的江湖恩仇,各位客官就臆想一下得了。咋就说说为何会出现这样的桥段呢?原因很简单,要么他知道了数据库root账户的密码,或者是他开发程序中使用数据库账户权限过高,拥有drop权限,导致出现怨气之后,一个drop命名,删库跑路。

就数据库安全操作这块,简而言之,谨慎开放root账户,尤其root账户密码,能设置只允许root账户本地访问那就最好。对于开发者而言,创建普通用户,并设置好对数据库(可指定数据库,数据库表)访问权限就好。下面就看看对于数据库创建普通账户,并对账户设置账户权限的流程。

1. 登录root账户
mysql -uroot -p

输入密码即可登录mysql root账户

2. 创建新账户

可查看现有用户及host访问

mysql> select Host,User from mysql.user;

创建新账户test并设置密码为password,并设置为本地host ip登录

mysql> create user test@localhost identified by 'password';

-- 如果想要设置某个允许某个地址登录为:
-- test@‘192.168.1.85'
-- 不设置 create user test identified by 'password';则默认为“%”所有ip地址

mysql> flush privileges ;

-- 创建用户或者修改用户密码之后,我们需要执行指令flush privileges;刷新MySQL的系统权限相关表,使操作生效,以免出现拒绝访问。
3. 设置权限

修改访问host地址,"%"为允许任何地址访问,可设置本地,如localhost

mysql> update mysql.user set host = '%' where user = 'test'
设置对数据的访问:

如:设置对数据库mall下所有数据库表的操作,可test用户查询开放mall下表查询、修改、添加操作

mysql> grant select,update,insert on mall.* to test@'%' identified by 'password';
mysql> flush privileges;

注意:上面我们没有赋予delete删除权限,因此test用户没有删除数据库mall下面数据的权限

如果需要设置所有权限:

mysql> grant all privileges on mall.* to test@'%' identified by 'password';
mysql> flush privileges;

设置对所有数据库及表的操作,以下为粗暴设置法:

mysql> grant all privileges on *.* to 'test'@'%';
mysql> flush privileges;
撤销权限:
-- 撤销update权限
mysql> revoke update on mall.* from test@'%';
-- 撤销所有权限
mysql> revoke all on mall.* from test@'%';
mysql> flush privileges;
后续带来使用navicat 的gui界面创建账户并对用户设置访问权限。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值