如何防止SQL注入泄露元数据_限制数据库信息查询权限

禁用元数据访问需分层防控:MySQL用skip-show-databases+限定库权限;PostgreSQL撤回pg_catalog USAGE及关键视图SELECT;SQL Server撤销VIEW DEFINITION;应用层禁用运行时查元数据。MySQL 中如何禁用 information_schema 查询默认情况下,普通用户也能查 information_schema,这是 SQL 注入后获取表名、列名的主要跳板。不能靠"不拼接 SQL"就高枕无忧,得从权限层堵死。实操上,直接回收对 information_schema 的 SELECT 权限无效(MySQL 8.0+ 允许显式授权但不生效),真正有效的是:限制用户只能访问指定数据库,并关闭元数据访问开关。创建用户时用 CREATE USER 'app'@'%' IDENTIFIED BY 'pwd',**不要**加 WITH GRANT OPTION只授具体库权限:GRANT SELECT, INSERT, UPDATE ON myapp_db.* TO 'app'@'%',**不授** mysql 或 information_schema 任何权限MySQL 8.0.29+ 可设系统变量:SET PERSIST information_schema_stats_expiry = 0(降低统计信息缓存,间接增加探测成本,非根治但有干扰作用)关键一步:在 my.cnf 中加 skip-show-databases ------ 这会让 SHOW DATABASES 对非 super 用户返回空,连库名都看不到PostgreSQL 怎么关掉 pg_catalog 和 information_schemaPostgreSQL 的元数据更开放,默认所有用户都能查 pg_tables、pg_columns 等视图。不像 MySQL 那样能简单禁用,得靠撤销视图权限 + 撤销 schema 使用权。注意:不能删或重命名 pg_catalog,那是核心 schema;也不能直接 REVOKE SELECT ON ALL TABLES IN SCHEMA pg_catalog,因为部分视图依赖 superuser 权限,普通 revoke 会报错。先确保应用用户不是 pg_read_all_data 角色成员(这个角色默认可读所有系统表)逐个撤回关键视图权限:REVOKE SELECT ON pg_tables, pg_views, pg_columns FROM app_user撤回整个 schema 的使用权限:REVOKE USAGE ON SCHEMA pg_catalog FROM app_user(这步让 SELECT * FROM pg_catalog.pg_tables 直接报 permission denied for schema pg_catalog)PostgreSQL 15+ 支持行级安全策略(RLS),可在 pg_tables 上加策略,但实际中极少用------太重,且 RLS 不作用于元数据视图SQL Server 里 sys.tables 查不到的真正原因SQL Server 默认对普通用户隐藏系统视图内容,但只要用户有 VIEW DEFINITION 权限或属于 db_owner,就能看到真实表结构。泄露常发生在误授了这类权限,或者用了 sa 登录的应用连接字符串。 Vozo Vozo是一款强大的AI视频编辑工具,可以帮助用户轻松重写、配音和编辑视频。

相关推荐
tryCbest4 分钟前
搭建企业知识库之Milvus 向量数据库
数据库·milvus
辰辉创聚10 分钟前
In Vivo抗体是什么?| 体内抗体与普通科研抗体的区别
人工智能·python·时序数据库·in vivo抗体·体内抗体·体内级抗体
深圳市宝华视联13 分钟前
Python 读取 IP 视频流简单 Demo
python·嵌入式硬件·opencv·网络协议·tcp/ip·实时音视频·嵌入式实时数据库
czhc114007566319 分钟前
2026-08-24 博客:几个让你少踩坑的概念
数据库
门思科技31 分钟前
LoRaWAN Regional Parameters:为什么 CN470 和 EU868 的频点数不同
python·物联网
ACP广源盛139246256731 小时前
Qwen3.8‑2.4T 开源落地@ACP#国产 Serdes 长距离视频传输芯片 GSV5800 在私有化 AI 服务中的价值与应用场景
大数据·数据库·人工智能·嵌入式硬件·矩阵·开源·音视频
oradh1 小时前
Oracle RMAN备份脚本、RMAN还原恢复测试、RMAN常用语句
数据库·oracle·rman备份脚本·rman还原恢复测试·rman常用语句
汽车仪器仪表相关领域1 小时前
ZDT‑I伺服电机测试系统:四象限动态加载
大数据·数据库·分布式·功能测试·汽车·压力测试·可用性测试
Joseph 乔1 小时前
【Python】卸载与重装
经验分享·python
归去来?1 小时前
Python 常用优雅写法
开发语言·python