微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用 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 的元数据公开,但是,如果有人知道架构,他们仍然可以使用相同的连接来发出查询并查看数据。如果您想避免这种情况,则需要查看数据安全政策以避免任何访问。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。