软件开发PostgreSQL

postgresql上某个表aaa 没有给他任何权限,这个sql 标签能不让看吗?

我创建了一个用户 U1  赋了一个表的T100 的查询权限。我的问题是,我用这个用户登录,我用pgadmin 点击其他表时候,在右边能看到其他没有任何权限的表的创建语句?  

这个表aaa 没有给他任何权限,这个sql 标签能不让看么?

查询aaa 会报错 没有权限!我要建立一个用户给其他部门用,我又不想让他看到我其他表的创建语句,因为这里面有字段还有注释,很多敏感信息。

参与1

0同行回答

“答”则兼济天下,请您为题主分忧!

ChatGPT 回答

根据您的描述,您已经为用户U1赋予了T100表的查询权限,但是在使用pgadmin登录时,该用户可以看到其他没有权限的表的创建语句。这可能是因为该用户被授予了某些数据库级别的权限,例如查看元数据或其他表的定义。您可以通过以下步骤来解决这个问题:

  1. 确认用户U1是否被授予了其他数据库级别的权限。您可以使用以下命令查看用户的权限:
du U1
  1. 如果用户U1被授予了其他权限,您可以使用以下命令来撤销这些权限:
REVOKE <权限名称> ON DATABASE <数据库名称> FROM U1;

例如,如果用户U1被授予了查看元数据的权限,您可以使用以下命令来撤销该权限:

REVOKE SELECT ON pg_catalog.pg_tables FROM U1;
  1. 如果用户U1只被授予了T100表的查询权限,但仍然可以看到其他表的创建语句,您可以考虑将其他表的所有权转移到其他用户或角色,以便用户U1无法查看这些表的定义。您可以使用以下命令将表的所有权转移到其他用户或角色:
ALTER TABLE <表名> OWNER TO <其他用户或角色>;

例如,如果您想将表aaa的所有权转移到用户U2,您可以使用以下命令:

ALTER TABLE aaa OWNER TO U2;

这样,即使用户U1使用pgadmin登录并尝试查看表aaa的定义,也会收到“没有权限”的错误消息。

希望这些步骤能够帮助您解决问题。同时,为了保护敏感信息,建议您在授权时仔细考虑每个用户或角色的权限,并仅授予必要的权限。

提问者

甘草片
甘草片162151
软件开发工程师安天科技
擅长领域: 数据库服务器存储

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2023-02-02
  • 关注会员:1 人
  • 问题浏览:720
  • X社区推广