普通用户可以访问系统目录

文章目录

文档用途

了解为什么普通用户可以访问系统目录

详细信息

当我们新创建一个用户A,用户A可以访问pg_database,pg_class等系统试图。在一些权限控制严格的场景中,你可能不禁会问为什么。为什么用户A在没有授权的情况下可以访问这些系统字典呢?

答案就在数据库的权限体系中。

  • 数据库中有一个特殊的名为PUBLIC的"角色"。普通用户会继承PUBLIC的权限。
  • 数据库默认将某些类型对象的权限授予PUBLIC。包括但不限于针对数据库的CONNECT和TEMPORARY(创建临时表)权限; 针对函数和程序的EXECUTE权限;以及针对语言和数据类型(包括域)的USAGE权限。
    下面我们看一下有关这些系统试图的授权情况。以pg_database为例
sql 复制代码
highgo=# select * from information_schema.table_privileges where table_name like 'pg_database';
 grantor | grantee | table_catalog | table_schema | table_name  | privilege_type | is_grantable | with_hierarchy 
---------+---------+---------------+--------------+-------------+----------------+--------------+----------------
 sysdba  | PUBLIC  | highgo        | pg_catalog   | pg_database | SELECT         | NO           | YES  <<<
 sysdba  | sysdba  | highgo        | pg_catalog   | pg_database | INSERT         | YES          | NO
 sysdba  | sysdba  | highgo        | pg_catalog   | pg_database | SELECT         | YES          | YES
 sysdba  | sysdba  | highgo        | pg_catalog   | pg_database | UPDATE         | YES          | NO
 sysdba  | sysdba  | highgo        | pg_catalog   | pg_database | DELETE         | YES          | NO
 sysdba  | sysdba  | highgo        | pg_catalog   | pg_database | TRUNCATE       | YES          | NO
 sysdba  | sysdba  | highgo        | pg_catalog   | pg_database | REFERENCES     | YES          | NO
 sysdba  | sysdba  | highgo        | pg_catalog   | pg_database | TRIGGER        | YES          | NO
(8 行记录)

public角色拥有这个系统试图的select权限。因此普通用户可以访问这个系统试图。

当然你也可以回收这些默认权限。回收权限时指定的角色PUBLIC而不是用户A,因为从以上的权限结果中可知,对pg_database有select权限的是PUBLIC而不是用户A。以下是回收权限的示例

sql 复制代码
revoke select on pg_database from public;

通常这些默认权限时有意义的。在使用数据库过程中,普通用户可能会用到这些权限。因此不建议"随意"回收这些权限。如过因安全需求不得不进行权限回收,那么要经过严格测试再进行操作。

相关推荐
倔强的石头_2 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab3 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence3 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神3 天前
三、用户与权限管理
数据库·mysql
麦聪聊数据4 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡4 天前
【MySQL数据库】数据类型与表约束
数据库·mysql
曹牧4 天前
Oracle EXPLAIN PLAN
数据库·oracle
BD_Marathon4 天前
SQL学习指南——视图
数据库·sql
活宝小娜4 天前
mysql详细安装教程
数据库·mysql·adb