暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在 PostgreSQL 中,用户要查询(SELECT)某个表,必须同时拥有该表所在 Schema 的 USAGE 权限。

原创 小伙 2025-06-11
99

在 PostgreSQL 中,用户要查询(SELECT)某个表,必须同时拥有该表所在 Schema 的 USAGE 权限。

A

正确

B

错误

在 PostgreSQL 中,用户要查询(SELECT)某个表,必须同时拥有该表所在 Schema 的 USAGE 权限。
答案:A(正确)

📍 原因分析 Schema 的 USAGE 权限是访问基础

PostgreSQL 的权限体系要求用户必须先拥有 Schema 的 USAGE 权限,才能访问该 Schema 下的所有对象(如表、视图等)。即使已授予表的 SELECT 权限,若缺少 Schema 的 USAGE 权限,查询仍会失败。

示例命令:
-- 授予用户对 Schema 的 USAGE 权限 GRANT USAGE ON SCHEMA public TO user_name; -- 再授予表的 SELECT 权限 GRANT SELECT ON TABLE table_name TO user_name;

权限设计的逻辑

Schema 是命名空间:Schema 定义了对象的逻辑分组,USAGE 权限相当于“进入该空间的钥匙”。

最小权限原则:通过分层控制(Schema → 表),避免直接暴露所有对象,提升安全性。
实际场景验证

若仅赋予表的 SELECT 权限但未赋予 Schema 的 USAGE 权限,执行查询时将报错:
ERROR: permission denied for schema public

这明确说明 Schema 权限是前置条件。

💡 总结

PostgreSQL 的权限管理采用层级控制:
Schema 的 USAGE 权限 → 表级权限(如 SELECT)

缺少前者时,后者即使存在也无法生效。这一机制确保了权限管理的精细化和安全性。

因此,题目中的描述完全正确 ✅。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论