SQL安全:常见手段

前面我们从基础的单表查询一直聊到优化,讲了SQL的很多内容。这一节我们来说说怎么让我们的数据库变得更安全。

为了实现常见的业务场景,数据库会提供很多的功能。有一些功能如果被攻击者利用,就很容易获取到不应该让其获取到的信息。比如union拼接、比如1=1拼接。

常见的手段,可以在应用程序角度数据库引擎角度进行分类。

应用程序角度

在应用程序角度,最直接的就是对用户输入进行格式校验,不符合要求的报错处理。

其次就是参数化查询。这个是很常见的预防SQL拼接注入的方法。即将用户输入的内容作为参数传递给预编译的SQL。由于预编译时数据库会缓存SQL的执行计划,所以一定程度上也能提高程序的性能。

有一些恶意注入会利用报错信息,所以在程序中要对报错信息 也进行一定的屏蔽。如果为了方便排查,可以单独建表对错误堆栈进行记录。

数据库引擎角度

针对用户进行权限最小化处理,是数据库角度最常见的操作。

启用数据库的审计功能,记录数据库的操作日志。牺牲一些性能来换取更高的安全性。

配置数据库的安全参数,比如禁用动态SQL、使用强密码策略等。数据库为了保证安全,提供了很多的配置选项。

小结

这一节我们讲述了为了保证SQL安全而使用的常见手段,在具体业务过程中一般要结合起来使用,以达到维护数据库安全的目的。

相关推荐
前进的李工11 分钟前
数据库视图:数据安全与权限管理利器
开发语言·数据库·mysql·navicat
what丶k16 分钟前
深度解析 Canal 数据同步:原理、实操与生产级最佳实践
数据库·后端
小Tomkk24 分钟前
化繁为简:Access 与 SQL 创新指南(第一篇)
sql·access
白鲸开源25 分钟前
(三)ODS/明细层落地设计要点:把数据接入层打造成“稳定可运维”的基础设施
大数据·数据结构·数据库
程序员这么可爱36 分钟前
MySQL分页踩坑实录:LIMIT分页出现重复数据,同一主键ID跨页重复完美解决
数据库·mysql·limit分页重复·sql分页优化·数据库踩坑·主键排序规范
Elastic 中国社区官方博客1 小时前
需要知道某个同义词是否实际匹配了你的 Elasticsearch 查询吗?
大数据·数据库·elasticsearch·搜索引擎·全文检索
熊文豪1 小时前
MySQL迁移的“隐形坑”与电科金仓的“零改造”破局之道
数据库·mysql
萝卜白菜。2 小时前
ClassCastException: oracle.sql.BLOB cannot be cast to oracle.sql.BLOB问题
数据库·oracle
czlczl200209252 小时前
Mysql的多版本快照MVCC机制与Mysql四种隔离级别
数据库·mysql
有想法的py工程师2 小时前
PostgreSQL 事务隔离级别详解(以及与MySQL实现差异)
数据库·mysql·postgresql