首页 游戏 软件 资讯 排行榜 专题
首页
数据库
如何防御SQL视图信息泄露_限制可见列与权限管控

如何防御SQL视图信息泄露_限制可见列与权限管控

热心网友
59
转载
2026-04-30

视图安全需三层控制:定义层必须显式列字段禁用SELECT*,权限层须单独授予视图SELECT权限,元数据层须限制INFORMATION_SCHEMA等系统表访问,缺一不可。

如何防御SQL视图信息泄露_限制可见列与权限管控

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

很多人以为创建了视图就万事大吉,其实不然。视图本身并不会自动隐藏敏感列,你必须显式地写出字段名;同时,视图的权限也不从基表继承,必须单独授予——这两点如果没做到,那这个视图基本等于没设防。

视图定义必须显式列出字段,禁用 *

SELECT * 来创建视图,是列级信息泄露的典型起点。你想想看,哪怕基表后来只新增了一列 password_hash,视图也会立刻将其暴露无遗。用户只需要执行一句 SELECT * FROM my_view,就能轻松拿到这个敏感字段。

  • 正确写法SELECT user_id, username, created_at FROM users
  • 错误写法SELECT * FROM users(开发时是省事了,上线后可能就出事了)
  • 这里有个细节需要注意:MySQL 8.0+ 和 PostgreSQL 都支持这种动态星号写法,但 SQL Server 的视图不会随基表自动更新。这意味着,一旦改了基表结构,你必须手动执行 ALTER VIEW,否则视图可能报错或返回空值。

视图权限必须显式 GRANT SELECT,不能依赖基表权限

这是一个常见的认知误区:用户有基表的 SELECT 权限,不等于就能查视图;反过来,用户没有基表权限,也不等于不能查视图。视图的权限是独立生效的。

  • MySQL 授权:执行 GRANT SELECT ON my_user_view TO 'analyst'@'%'
  • PostgreSQL 授权:执行 GRANT SELECT ON my_user_view TO analyst
  • 常见错误:只给 users 表授权了,却忘了给视图单独授权,结果用户查询时报 permission denied for relation users(PostgreSQL)或类似的拒绝提示。
  • PostgreSQL 的权限机制更灵活一些。默认情况下,视图会以调用者的身份执行权限检查(SECURITY INVOKER)。如果你想让它以创建者的身份执行,从而绕过调用者对基表的权限限制,就需要显式设置 CREATE VIEW ... WITH (security_invoker = false),或者在创建后用 ALTER VIEW ... SET (security_invoker = false) 来修改。

别让视图定义本身变成信息源

这一点往往被忽视。攻击者只要能查询 INFORMATION_SCHEMA.VIEWS 或调用 pg_get_viewdef() 这类函数,就能直接看到视图的完整定义。这意味着,你精心设计的字段列表、用于脱敏的 CASE WHEN 逻辑,甚至背后隐藏的敏感字段名,都可能一览无余。

  • MySQL:执行 REVOKE SELECT ON INFORMATION_SCHEMA.VIEWS FROM 'app_user'@'%'(这个权限默认是开放的,需要特别注意)
  • PostgreSQL:执行 REVOKE SELECT ON pg_views FROM app_user,并确保 app_user 不在拥有 pg_read_all_data 权限的角色中。
  • 生产环境:务必禁用普通账号的 SHOW CREATE VIEW 权限。哪怕这个账号只有 SELECT 权限,这个命令也会直接返回完整的视图定义。
  • 还有更隐蔽的风险:如果你在视图里用了自定义函数做脱敏处理,那么函数体本身也可能被查询(例如通过 pg_get_functiondef())。更要命的是,如果这个函数内部又去查询了别的配置表,那风险链就被进一步拉长了。

元数据访问必须掐断,否则视图再严也白搭

这是最后一道,也是至关重要的一道防线。只要用户能查询 INFORMATION_SCHEMA.TABLESpg_tables 这类系统表,他就能枚举出数据库里所有的表和列。有了这份“地图”,攻击者就可以有针对性地构造查询,轻松绕过视图的限制。

  • MySQL 8.0.29+:可以在配置文件 my.cnf 中加入 skip-show-databases 参数。这样,非超级用户执行 SHOW DATABASES 时将返回空结果。
  • PostgreSQL:关键一步是执行 REVOKE USAGE ON SCHEMA pg_catalog FROM app_user。如果不这么做,用户依然可以执行 SELECT * FROM pg_catalog.pg_tables
  • SQL Server:要避免误授 VIEW DEFINITION 这类权限,普通账号绝不应该属于 db_ownersysadmin 这类高权限角色。
  • 值得注意的是,在 MySQL 中回收 information_schema 的权限需要显式执行 REVOKE。但在部分旧版本中,这可能不生效,这时候就需要依靠关闭元数据访问开关来兜底。

说到底,视图安全最容易被忽略的真相是:它绝非“建完就完”的一次性操作。一个真正安全的视图,依赖于三层控制的紧密配合——定义层(字段必须显式写)、权限层(视图必须单独授权)、元数据层(彻底堵死 schema 查询路径)。这三层,少了任何一层,攻击者都能找到缝隙,从视图之外将你的防御打穿。

来源:https://www.php.cn/faq/2328802.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

以太网交换机怎么设置端口VLAN
电脑教程
以太网交换机怎么设置端口VLAN

以太网交换机端口VLAN设置:从规划到验证的实战指南 给交换机端口划分VLAN,听起来是基础操作,但配置的精准度直接决定了整个二层网络的“健康”状况。其核心逻辑并不复杂:通过静态方式,将物理端口精准地划归到指定的VLAN ID下,并根据端口所连接设备的不同角色,灵活选用Access、Trunk或Hy

热心网友
04.30
半球电热水壶安装时要注意什么
电脑教程
半球电热水壶安装时要注意什么

半球电热水壶安装的核心在于确保底座稳固、电气连接可靠、温控机构精准复位 新壶到手,先别急着烧水。安装这事儿,看似简单,实则每一步都关乎安全和后续的使用体验。核心就围绕三点:底座得稳如磐石,电源连接要万无一失,最关键的是那个负责自动断电的温控机构,必须装得精准到位。下面咱们就按顺序,把每一步拆解清楚。

热心网友
04.30
按摩椅要怎么使用才能达到最佳效果?
电脑教程
按摩椅要怎么使用才能达到最佳效果?

要达到最佳效果,按摩椅必须遵循“科学频次、精准力度、身心协同”的使用原则 想让按摩椅真正成为你的健康伙伴,而不是一件摆设?关键在于掌握一套科学的“使用说明书”。每天早晚各一次、每次20分钟,这个时长可不是凭空而来,而是经过了临床康复研究和主流品牌海量用户实测验证的黄金标准。至于力度调节,必须严格遵从

热心网友
04.30
家用投影仪选购技巧适合小户型吗?
电脑教程
家用投影仪选购技巧适合小户型吗?

家用投影仪不仅适合小户型,而且正成为现代紧凑型居住空间的理想影音解决方案 谁说小空间就与影院级享受无缘?如今,像当贝D6X Pro这样的新一代机型,正凭借其2 1kg的轻巧机身、1 2:1的友好投射比,以及能灵活旋转225度的AI云台,彻底改写了游戏规则。你只需大约3米的距离,就能轻松投出81英寸的

热心网友
04.30
半球电热水壶安装前要清洗吗
电脑教程
半球电热水壶安装前要清洗吗

是的,半球电热水壶在首次使用前必须清洗 这几乎是所有正规家电产品启用前的“规定动作”。你可能会想,新买的水壶看起来光洁如新,为什么还要多此一举?原因在于,即便是采用食品级304不锈钢内胆和智能蒸汽感应控温技术的合规产品,在经历生产、仓储和运输的漫长旅程后,内胆表面仍可能附着微量的金属加工碎屑、防锈保

热心网友
04.30

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

关于天气的农谚
职业与学业
关于天气的农谚

清明刮了坟头土,沥沥拉拉四十五。 这些流传已久的农谚,可不是随口说说的顺口溜,它们是千百年来农耕文明与自然对话的结晶,是写在时间里的“天气备忘录”。一句句简短的话语,背后藏着的是对节气、物候与农事活动之间精密联系的深刻洞察。 节气与农事 先看清明和谷雨这对“搭档”。老话说,“清明要晴,谷雨要淋”。清

热心网友
04.30
经典的励志语句
职业与学业
经典的励志语句

人生伟业的建立,不在能知,乃在能行。 仔细想想,真正的阻碍往往并非来自外界,而是源于内心。任何的限制,其实都是从自己的内心开始的。 那么,我们该如何突破呢?不妨先从一个简单的行动开始:如果我们都去专注地做那些自己能做到的事情,最终的结果,往往会让自己大吃一惊。 行动固然重要,但人终究是社会性的存在。

热心网友
04.30
描写春雨的优美句子
职业与学业
描写春雨的优美句子

亮晶晶的春雨 你听,那是什么声音?是欢快的打击乐,还是轻盈的舞步?原来,是一群天真烂漫的娃娃——亮晶晶的春雨,正在高空中云集。它们嬉戏着,咿咿呀呀地欢唱着,然后一股脑儿地、欢蹦乱跳地扑向大地母亲的怀抱。 这春雨,可不只是娃娃们的嬉闹。它绵绵不绝,细细密密,像极了巧手姑娘使用的花针与丝线。它们斜斜地交

热心网友
04.30
赞扬母亲的句子
职业与学业
赞扬母亲的句子

母亲的爱是世间最伟大的爱,也是最珍贵的爱 母爱,常常藏匿于那些看似微不足道的日常琐碎里。它或许没有惊天动地的形式,却如涓涓细流,汇聚成永恒的生命之源。 该如何形容这种无处不在的守护呢?春天,她是拂面的和风,送来丝丝暖意;夏日,她是那口沁凉的冰淇淋,带来纯粹的快乐;秋时,她化作枝头那片悄然飘落的黄叶,

热心网友
04.30
描写花的好句子
职业与学业
描写花的好句子

一列美人蕉 盛开着红色、黄色而带着黑斑的大朵的花,正伸张了大口,向着灿烂的春光微笑。远远望去,美人蕉的花簇像一团团燃烧得正旺的火焰,充满了生命力;凑近细看,每一朵又宛如小姑娘发间俏丽的红蝴蝶结,透着几分活泼与羞涩。至于它那宽大的叶子,则像极了一把把撑开的绿色芭蕉扇,在风中轻轻摇曳。 看着这些盛开的花

热心网友
04.30