如何在Jboss teiid中配置只读数据源

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Jboss teiid中配置只读数据源相关的知识,希望对你有一定的参考价值。

我在Jboss teiid中配置了Redshift数据源。我想知道如何使我的数据源只读。我知道如何使用Dataroles(参考: - https://github.com/teiid/teiid-quickstarts/blob/master/vdb-dataroles/src/vdb/portfolio-vdb.xml)在VDB级别上制作只读资源。但是,这将允许创建不是只读的新VDB,这在我的案例中是一个漏洞。我想在domain.xml中的Datasource配置级别执行此操作。有没有关于如何做到这一点的指导。

我没有使用teiid Designer,我配置了Datasources编辑domain.xml文件。我在domain.xml文件中的Datasources子元素下添加了暂停的Datasource

            <datasource jndi-name="java:jboss/datasources/redshiftDS" pool-name="redshiftDS" enabled="true" use-java-context="true">
            <connection-url>jdbc:redshift://***********.com:5439/schema</connection-url>
            <driver>redshift</driver>
            <security>
                <user-name>${user_name}</user-name>
                <password>${pw}</password>
            </security>
            <pool>
                <!--min-pool-size>
                    10
                </min-pool-size-->
                <max-pool-size>
                    5
                </max-pool-size>
            </pool>
            </datasource> 

有没有什么办法可以配置数据源在这里只读。举个例子来添加类似的东西

<access-permission>
   read-only
</access-permission>
答案

从Teiid角度来看,最简单的替代方法是为您没有用户具有写访问权限的所有模式的任何身份验证添加数据角色:

<data-role name="read-only" any-authenticated="true" allow-create-temporary-tables="true">
    <description>read only access</description>
    <permission>
        <resource-name>schema name</resource-name>
        <allow-read>true</allow-read>
        <allow-execute>true</allow-execute>
    </permission>
</data-role>

翻译人员有一面旗帜将其设置为不可变 - 但对此的支持已被删除。

另一答案

将所有表标记为不可更新。如果您正在使用设计器,则表或列上有属性,或者也可以使用DDL执行相同操作。

以上是关于如何在Jboss teiid中配置只读数据源的主要内容,如果未能解决你的问题,请参考以下文章

使用LDAP登录模块进行Teiid VDB数据虚拟化的身份验证失败

Teiid(VDB)怎么导出部署到服务器上去

如何使用 HikariCP 在 Jboss 中配置 JNDI 数据源?

Teiid 9.1 Beta2 发布,允许嵌入式翻译

如何在 Jboss 5 中配置外部服务调用证书

如何从默认的 JBoss 服务器配置中删除 Hypersonic?