0

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

我没有使用 teiid Designer,而是配置 Datasources 编辑 domain.xml 文件。我在 domain.xml 文件的 Datasources 子元素下添加了休闲数据源

            <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>
4

2 回答 2

0

将所有表标记为不可更新。如果您使用设计器,则表或列上有属性,或者您也可以使用 DDL 来做同样的事情。

于 2017-12-19T21:26:12.997 回答
0

从 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>

翻译器上有一个标志将它们设置为不可变 - 但对它的支持已被删除。

于 2017-12-20T14:36:45.487 回答