如何控制普通用户访问系统快照表?如:information_schema.tables、__all_virtual_meta_table、__all_tenant_meta_table

如何控制普通用户访问系统快照表?如:information_schema.tables、__all_virtual_meta_table、__all_tenant_meta_table。是否所有用户都可以访问information_schema中的库表,只有root用户可以访问__all_virtual_meta_table?

@论坛小助手

1 个赞

根据给定的文档片段,我们可以确定普通用户对 information_schema 库具有一定的访问权限,但这些权限受限于用户的租户范围。对于 __all_virtual_meta_table__all_tenant_meta_table 这样的系统表,只有 sys 租户或管理员用户才具有访问权限。

  1. information_schema

    • 普通租户默认拥有对 information_schema 库中所有表的只读权限,可以查询其中的数据。
    • 普通租户只能查看其自身租户范围内的元数据信息,不能查看其他租户的数据或对象信息。
    • 引用文档片段 8 的内容:
      information_schema 库默认是所有普通租户都有权限查看的,和mysql保持一致。
      在 OceanBase 数据库的MySQL 模式下,普通租户的默认权限包括 SELECT on information_schema.*。这意味着普通租户在创建后,默认拥有对 information_schema 库中所有表的只读权限,可以查询其中的数据。
      如果在连接 MySQL租户时未指定默认数据库,则会默认连接到 information_schema 库。这也进一步表明,information_schema 是普通租户可访问的默认系统库。
      需要注意的是,虽然晋通租户可以查看 information_schema 库中的元数据信息,但这些信息仅限于该租户自身的数据库对象和权限范围内的内容。不同租户之间的数据是完全隔离的,普通租户无法通过 information_schema 查看其他租户的数据或对象信息。
      
  2. __all_virtual_meta_table__all_tenant_meta_table

    • 这些系统表通常只能由 sys 租户或管理员用户访问。
    • 引用文档片段 5560 的内容:
      * 查询配置项  
      `sys` 租户和所有用户租户均可以使用 `SHOW PARAMETERS` 语句或视图 `GV$OB_PARAMETERS` 查询该配置项。`sys` 租户还可以通过视图 `information_schema.PARAMETERS` 查询该配置项。  
      * 修改配置项  
      仅 `sys` 租户可以修改该配置项,用户租户不能修改该配置项。
      
    • 从上述内容可以推断,只有 sys 租户或管理员用户可以访问这些系统表。

综上所述,普通用户可以访问 information_schema 库中的表,但只能查看其租户范围内的数据。而 __all_virtual_meta_table__all_tenant_meta_table 这样的系统表只能由 sys 租户或管理员用户访问。

更多信息请查看:

  1. 用户限制了库查询权限,还能查询information_schema库
  2. global_background_cpu_quota
1 个赞

分三档?普通用户、sys租户、root