系统集成PostgreSQL

postgreSQL 怎么让没有权限的表不显示?

postgreSQL 怎么让没有权限的表不显示?

参与5

1同行回答

zftangzftang其它小白一枚
SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' AND table_name LIKE 'your_table_name' AND grantor IS NULL ;显示全部

SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' AND table_name LIKE 'your_table_name' AND grantor IS NULL ;

收起
互联网服务 · 2023-07-21
浏览318

ChatGPT 回答

在 PostgreSQL 中,可以通过修改用户权限或使用视图来实现让没有权限的表不显示的效果。

  1. 修改用户权限

可以通过修改用户权限,让用户无法访问某些表。具体步骤如下:

1)使用超级用户登录 PostgreSQL 数据库。

2)使用以下命令修改用户权限:

REVOKE SELECT ON TABLE table_name FROM user_name;

其中,table_name 是要限制访问的表名,user_name 是要限制访问的用户。

  1. 使用视图

另一种方法是使用视图,将需要限制访问的表封装在视图中,然后授予用户对视图的访问权限。这样,用户就只能访问视图,而无法直接访问表。具体步骤如下:

1)使用超级用户登录 PostgreSQL 数据库。

2)创建视图,将需要限制访问的表封装在视图中:

CREATE VIEW view_name AS SELECT * FROM table_name;

其中,view_name 是视图名称,table_name 是要限制访问的表名。

3)授予用户对视图的访问权限:

GRANT SELECT ON view_name TO user_name;

其中,user_name 是要授予访问权限的用户。

通过以上两种方法,可以实现让没有权限的表不显示的效果。需要注意的是,如果用户拥有足够的权限,仍然可以通过其他方式访问被限制的表。因此,需要谨慎授权。

提问者

Spring97
数据库管理员吉致

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2023-07-17
  • 关注会员:2 人
  • 问题浏览:694
  • 最近回答:2023-07-21
  • X社区推广