前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 系列教程之(十三)MySQL 安全管理

MySQL 系列教程之(十三)MySQL 安全管理

原创
作者头像
ruochen
修改2021-08-18 10:34:00
4380
修改2021-08-18 10:34:00
举报
文章被收录于专栏:若尘的技术专栏

访问控制

MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权,既不能多也不能少。

换句话说,用户不能对过多的数据具有过多的访问权。

考虑以下内容:

  • 多数用户只需要对表进行读和写,但少数用户甚至需要能创建和删除表;
  • 某些用户需要读表,但可能不需要更新表;
  • 你可能想允许用户添加数据,但不允许他们删除数据;
  • 某些用户(管理员)可能需要处理用户账号的权限,但多数用户不需要;
  • 你可能想让用户通过存储过程访问数据,但不允许他们直接访问数据;
  • 你可能想根据用户登录的地点限制对某些功能的访问。

这些都只是例子,但有助于说明一个重要的事实, 即你需要给用户

提供他们所需的访问权,且仅提供他们所需的访问权。 这就是所谓的访

问控制,管理访问控制需要创建和管理用户账号。

MySQL-管理用户

为了执行数据库操作,需要登录 MySQL。MySQL创建一个名为root的用户账号,它对整个MySQL服务器具有完全的控制。你可能已经在学习中使用root进行过登录,在对非现实的数据库试验MySQL时,这样做很好。不过在现实世界 的日常工作中,决不能使用root。应该创建一系列的账号,有的用于管 理,有的供用户使用,有的供开发人员使用,等等。

代码语言:txt
复制
-- root用户是mysql超级管理用户,拥有的权限是最高的
-- 创建用户,分配权限
-- 创建 zhangsan 用户使用 234567 登陆mysql
create user zhangsan identified by '234567';

-- 给 zhangsan 用户分配一个 itxdl库中所有表的 select权限
grant select on itxdl.* to zhangsan;

-- 查看用户的权限
show grants for zhangsan;

-- 删除用户的指定权限
revoke delete on itxdl.stu from zhangsan;

-- 简写方式
grant select on itxdl.* to lisi@'%' identified by '111';

SQL注入

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

防护

归纳一下,主要有以下几点:

1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;

2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。

3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。

5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

6.最好的方案进行SQL预处理:把sql和数据参数进行分离

代码语言:txt
复制
具体操作
1,准备的sql语句中 使用 %s 或者 %(key)s 占位
2,在执行sql语句时,通过execute方法分别传递sql和参数(列表,元组,字典)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 访问控制
    • MySQL-管理用户
      • SQL注入
        • 防护
    相关产品与服务
    云数据库 SQL Server
    腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档