Как настроить источник данных только для чтения в Jboss teiid

Я настроил источник данных Redshift в тейиде Jboss. Я хочу знать, как сделать мой источник данных доступным только для чтения. Я знаю, как создавать ресурсы только для чтения на уровне VDB с помощью Dataroles (ссылка: - https://github.com/teiid/teiid-quickstarts/blob/master/vdb-dataroles/src/vdb/portfolio-vdb.xml). Но это позволило бы создавать новые VDB, которые не только для чтения, что является уязвимостью в моем случае. Я хочу сделать это на уровне конфигурации источника данных в domain.xml. Есть ли какие-либо рекомендации о том, как это сделать.

Я не использую teiid Designer и настраиваю источники данных, редактируя файл domain.xml. Я добавляю следующий источник данных в подэлемент Datasources в файле domain.xml

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

2 ответа

Решение

Самая простая альтернатива с точки зрения 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.

Другие вопросы по тегам