MySQL 安全管理

MySQL数据库通常包含关键的数据,为确保这些数据的安全和完整,需要利用访问控制用户管理的功能。

一、访问控制

MySQL的安全基础的是:用户应该对他们需要的数据具有访问权,而其它数据则无权访问。

访问控制:你只需要给用户提供他们所需的访问权,管理访问控制需要创建和管理账号。

MySQL安装完成后会创建一个root用户,它对整个MySQL服务具有完全的控制权,不过在日常工作中,决不能使用root,应该创建一系列的账号,有的给数据库管理员使用、有的给用户使用、有得给开发人员使用

 

二、用户管理

MySQL用户账号和信息存储在名为mysql的数据库中的user表中。一般不需要使用它,当我们需要获得所有用户账号列表时,可以访问它,这个user表包含了所有的用户账号,其中user列保存了所有登录名,新安装的数据库只有一个root登录名

use mysql;
SELECT * FROM user;

 

1、创建用户账号

为了创建一个新用户账号,使用GREATE USER语句,如下:

CREATE user ben IDENTIFIED BY 'abc123';

 在创建用户时不需要口令,不过这个例子用 IDENTIFIED BY 'ABCDEF$$' 给出了一个口令, IDENTIFIED BY 指定的口令为纯文本,MySQL将在对其进行加密保存。

当然,我们也可以更改口令,使用SET PASSWORD语句,新的口令必须使用Password()函数进行加密。

SET PASSWORD FOR ben = Password('abc1234');

 

2、重命名一个用户账号

RENAME USER ben TO bbb;

 

3、删除一个账号

DROP USER bbb;

 

4、设置访问权限

我们先来看一下刚才用户为ben的权限

SHOW GRANTS FOR ben;

提示它还没有赋予任何权限。它们只能登陆到MySQL但是不能看到数据和执行任何数据库操作。

 下面我们对它分配权限,使用GRANT语句:

GRANT要求给出要授予的权限、被授予访问权限的数据库或表、授予的用户名

GRANT SELECT ON store.* TO ben;

上面SELECT是访问权限,store.*是store数据库下面的所有表。TO ben是把权限赋予给名为ben的用户。用户ben对store数据库中的所有表只有只读权限。

我们再来看看ben用户的权限:可以看到刚才的分配权限,生效了

同时我们在登陆ben这个账号,发现可以访问store数据库了

 

GRANT的反操作为REVOKE,它是用来撤销权限的。下面举个例子:

这条语句撤销了刚刚赋予只读权限的ben用户,被撤销的访问权限必须存在,否则会报错。

REVOKE SELECT ON store.* FROM ben;

用户刚才的只读权限撤销了

 

总结:权限的赋予(GRANT)和撤销(REVOKE)可以在几个层次上控制权限访问:

1、整个服务器,使用GRANT ALL和REVOKE ALL

2、整个数据库,使用ON databases.*

3、特定的表,使用ON databases.table

4、特定的列

5、特定的存储过程

关于具体的权限,可以查看MySQL文档

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值