POLARDB中pg schema那边能控制用户只能看到有权限的表么?[阿里云PolarDB]

POLARDB中pg schema那边能控制用户只能看到有权限的表么, 没权限的表不显示给用户看 吗?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 在 POLARDB 中,可以通过配置角色权限来实现对用户访问表资源的限制。具体的操作步骤如下:

    1. 首先,需要为用户分配适当的访问权限。这可以通过执行 SQL 命令来实现:
      ALTER ROLE  SET SCHEMA ;

      其中 为需要赋权的角色名称, 为目标schema名称。这条命令将把用户的角色设置为指定的模式。

    2. 接下来,可以根据需要为每个模式中的表分别设置访问权限。这可以通过执行 SQL 命令来实现:
      GRANT SELECT/INSERT/UPDATE/DELETE ON TABLE  TO ;

      其中 为需要授权的表名, 为需要赋权的角色名称。这将允许用户在该模式下的指定表上执行 SELECT/INSERT/UPDATE/DELETE 操作。

    3. 最后,如果想要让用户只能看到他们有权限的表,则需要确保他们在没有权限的情况下不能执行全库扫描等操作。为此可以采用如下方式来实现:
      REVOKE USAGE ON SCHEMA public FROM ;

      这将撤销用户在公共模式下的所有权限,使其只能访问他们自己有权限的模式及其下的表。

  2. 在POLARDB中,权限管理是区分层级的,包括实例权限、数据库权限、表空间、schema权限以及object对象(表、视图、索引)等。用户和角色的概念非常接近,如果给角色分配了可登录权限,那么该角色就可以登录并管理数据库中的对象。

    对于你的问题,”POLARDB中pg schema能否控制用户只能看到有权限的表”,答案是肯定的。首先,需要理解的是,默认情况下,用户不能访问不属于他们的方案中的任何对象。也就是说,一个用户创建的对象,只有该用户自己能够看到和访问。如果想让其他用户也能够访问到某些对象,那么模式的拥有者必须在该模式上授予相应的USAGE权限。例如,要允许用户使用方案中的对象,可能还需要根据对象授予额外的权限。