开发者社区 > PolarDB开源 > PolarDB 分布式版 > 正文

POLARDB中pg schema那边能控制用户只能看到有权限的表么?

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

展开
收起
小小鹿鹿鹿 2023-11-20 22:24:36 68 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在 POLARDB 中,可以通过配置角色权限来实现对用户访问表资源的限制。具体的操作步骤如下:

    1. 首先,需要为用户分配适当的访问权限。这可以通过执行 SQL 命令来实现:
      ALTER ROLE <username> SET SCHEMA <schema_name>;
      
      其中 <username> 为需要赋权的角色名称, <schema_name> 为目标schema名称。这条命令将把用户的角色设置为指定的模式。
    2. 接下来,可以根据需要为每个模式中的表分别设置访问权限。这可以通过执行 SQL 命令来实现:
      GRANT SELECT/INSERT/UPDATE/DELETE ON TABLE <table_name> TO <username>;
      
      其中 <table_name> 为需要授权的表名, <username> 为需要赋权的角色名称。这将允许用户在该模式下的指定表上执行 SELECT/INSERT/UPDATE/DELETE 操作。
    3. 最后,如果想要让用户只能看到他们有权限的表,则需要确保他们在没有权限的情况下不能执行全库扫描等操作。为此可以采用如下方式来实现:
      REVOKE USAGE ON SCHEMA public FROM <username>;
      
      这将撤销用户在公共模式下的所有权限,使其只能访问他们自己有权限的模式及其下的表。
    2023-11-21 17:28:40
    赞同 展开评论 打赏
  • 在POLARDB中,权限管理是区分层级的,包括实例权限、数据库权限、表空间、schema权限以及object对象(表、视图、索引)等。用户和角色的概念非常接近,如果给角色分配了可登录权限,那么该角色就可以登录并管理数据库中的对象。

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

    2023-11-21 16:30:38
    赞同 展开评论 打赏

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。

相关电子书

更多
云栖大会:开源 PolarDB 架构演进、关键技术与社区建设 立即下载
2023云栖大会:和客户一起玩转PolarDB新特性 立即下载
2023云栖大会:PolarDB for AI 立即下载