MYSQL学习笔记:关于MySQL安全管理(8)


MySQL学习:


MySQL安全管理

一.访问控制
  • MySQL服务器的安全基础

用户应该对他们需要的数据具有适当的访问权,既不能多也不能少

  • 访问控制

需要给用户提供他们所需的访问权,且仅提供他们所需的访问权

  • 不要使用root

严肃对待root登录的使用,仅在绝对需要的时候使用它;不要在日常的MYSQL操作中使用root。


二.管理用户

MySQL用户账号和信息存储在名为mysql的MySQL数据库中。一般不需要直接访问mysql数据库和表,但有时需要直接访问。需要直接访问他的时机之一是在需要获得所有用户账号列表时。

MYSQL数据库中有一个名为user的表,它包含所有用户账号。user表有一个名为user的列,它存储用户登录名。


  • 1.创建用户账户

IDENTIFIED BY 指定的口令为纯文本,MySQL将在保存到user表之前对其进行加密。

CREATE USER 用户名 IDENTIFIED BY 'PASSWORD';

也可以使用RENAME USER语句来重命名。

RENAME USER 原用户名 TO 新用户名;

  • 2.删除用户账户

使用DROP USER语句来删除一个用户账户。

DROP USER 用户名;

  • 3.设置访问权限

在创建用户账号后,必须接着分配访问权限。新创建的用户账号没有访问权限。它们能登录MySQL,但不能看到数据,不能执行任何数据库操作。

使用SHOW GRANTS FOR来看到赋予用户账号的权限。

SHOW GRANTS FOR 用户名;
--注意:USAGE表示根本没有权限。

为设置权限,使用GRANTS语句,需要给出以下信息:

  1. 要授予的权限;
  2. 被授予访问权限的数据库或库;
  3. 用户名。
GRANT SELECT ON database.* TO abc;

-- 也可用逗号(,)来进行多次授权
GRANT SELECT,INSERT ON database.TO abc;

此语句表示用户abc可以在database.*(database数据库的所有表)上使用SELECT。


REVOKE SELECT ON database.* FROM abc;

此语句表示撤销特定的权限。


GRANT和REVOKE可在几个层次上控制访问权限

  • 整个服务器,使用 GRANT ALLREVOKE ALL
  • 整个数据库,使用 ON database.*
  • 特定的表,使用 ON database.table
  • 特定的列;
  • 特定的存储过程。

  • 4.更改口令

为了更改用户口令,可使用SET PASSWORD语句。

SET PASSWORD FOR abc = PASSWORD('...');

-- 若不指定用户名,则更新当前登录用户的口令
SET PASSWORD = PASSWORD('...');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值