如何使用 standalone-vdb.xml wildfly/Teiid 域仅访问虚拟视图并隐藏物理表

问题描述

我们正在使用 standalone-vdb.xml 域来创建一个 vdb,然后让其他用户可以通过 Jupiter 访问它。

现在以下面的xml文件为例,我们创建了VIEW“customer_view” 来自表“Export2.customer_table”,它们都可以从木星访问。 但是,我们只希望可以访问 VIEWS 而不是物理表 哪个属性可用于隐藏表并仅为最终用户公开视图。

有人知道哪个属性可以做到这一点吗?我试图从文档中找到它,但找不到任何提及。 我们在 Docker 容器环境和 Postgresql 数据库中通过 HAL 管理接口使用 WildFly Full 17.0.1。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vdb name="stock" version="1">
    <description>The VDB</description>
    <property name="UseConnectorMetadata" value="true" />
    <model visible="true" name="Export2">  
        <property name="importer.useFullSchemaName" value="false"/>
        <property name="importer.schemaPattern" value="public"/>
        <property name="importer.tableTypes" value="TABLES,VIEW"/>        
        <source name="stockDS" translator-name="postgresql" connection-jndi-name="java:jboss/datasources/stockDS"/>
    </model>
    <model visible="true" name="Data" type="VIRTUAL">
        <metadata type="DDL"><![CDATA[
        CREATE VIEW customer_view (
            field_names string,field_description string
        ) AS
        SELECT variable_name,variable_description
         FROM Export2.customer_table;
        ]]> </metadata>
    </model> 
<data-role name="RoleA" any-authenticated="true">
     <description>Allow Reads and Writes to tables and procedures</description>
 
     <permission>
         <resource-name>Export2.customer_table</resource-name>
         <allow-create>true</allow-create>
         <allow-read>true</allow-read>
         <allow-update>true</allow-update>
     </permission>
     <mapped-role-name>Admin</mapped-role-name>
 </data-role>   
</vdb>

解决方法

http://teiid.github.io/teiid-documents/master/content/reference/r_xml-deployment-mode.html

您需要定义具有 false 可见性的模型

<model visible="false" name="Export2">

请注意,这将消除任何 API 的元数据公开,但是,如果有人知道架构,他们仍然可以使用相同的连接来发出查询并查看数据。如果您想避免这种情况,则需要查看数据安全政策以避免任何访问。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...