Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
7.4. Data Role Definition
7.4.1. Data Role Definition Link kopierenLink in die Zwischenablage kopiert!
vdb.xml file. (You will find this inside the .vdb zip archive under META-INF/vdb.xml if you used Teiid Designer). The vdb.xml file is checked against the vdb-deployer.xsd schema file found in the EAP_HOME/docs/teiid/schema directory.
7.4.2. Data Role Definition Example Link kopierenLink in die Zwischenablage kopiert!
- RoleA has permissions to read, write access to TableA, but can not delete.
- RoleB has no permissions that allow access to TableA
- RoleC has permissions that only allow read access to TableA.column1
Example 7.1. vdb.xml defining RoleA, RoleB, and RoleC
<?xml version="1.0" encoding="UTF-8"?>
<vdb name="sample" version="1">
<model name="modelName">
<source name="source-name" translator-name="oracle" connection-jndi-name="java:myDS" />
</model>
<data-role name="RoleA">
<description>Allow all, except Delete</description>
<permission>
<resource-name>modelName.TableA</resource-name>
<allow-create>true</allow-create>
<allow-read>true</allow-read>
<allow-update>true</allow-update>
</permission>
<mapped-role-name>role1</mapped-role-name>
</data-role>
<data-role name="RoleC">
<description>Allow read only</description>
<permission>
<resource-name>modelName.TableA</resource-name>
<allow-read>true</allow-read>
</permission>
<permission>
<resource-name>modelName.TableA.colum2</resource-name>
<allow-read>false</allow-read>
</permission>
<mapped-role-name>role2</mapped-role-name>
</data-role>
</vdb>
7.4.3. Data Role Definition Example: Additional Attributes Link kopierenLink in die Zwischenablage kopiert!
Example 7.2. Temp Table Role for Any Authenticated
<data-role name="role" any-authenticated="true" allow-create-temporary-tables="true">
<description>Temp Table Role for Any Authenticated</description>
<permission>
...
</permission>
</data-role>
7.4.4. Data Role Definition Example: Language Access Link kopierenLink in die Zwischenablage kopiert!
Example 7.3. vdb.xml allowing JavaScript access
<?xml version="1.0" encoding="UTF-8"?>
<vdb name="sample" version="1">
<property name="allowed-languages" value="javascript"/>
<model name="modelName">
<source name="source-name" translator-name="oracle" connection-jndi-name="java:myDS" />
</model>
<data-role name="RoleA">
<description>Read and javascript access.</description>
<permission>
<resource-name>modelName</resource-name>
<allow-read>true</allow-read>
</permission>
<permission>
<resource-name>javascript</resource-name>
<allow-language>true</allow-language>
</permission>
<mapped-role-name>role1</mapped-role-name>
</data-role>
</vdb>
7.4.5. Data Role Definition Example: Row-Based Security Link kopierenLink in die Zwischenablage kopiert!
Example 7.4. vdb.xml allowing conditional access
<?xml version="1.0" encoding="UTF-8"?>
<vdb name="sample" version="1">
<model name="modelName">
<source name="source-name" translator-name="oracle" connection-jndi-name="java:myDS" />
</model>
<data-role name="base-role" any-authenticated="true">
<description>Conditional access</description>
<permission>
<resource-name>modelName.tblName</resource-name>
<condition constraint="false">column1=user()</condition>
</permission>
</data-role>
<data-role name="RoleA">
<description>Read/Insert access.</description>
<permission>
<resource-name>modelName.tblName</resource-name>
<allow-read>true</allow-read>
<allow-create>true</allow-create>
</permission>
<mapped-role-name>role1</mapped-role-name>
</data-role>
</vdb>
7.4.6. Data Role Definition Example: Column Masking Link kopierenLink in die Zwischenablage kopiert!
Example 7.5. vdb.xml with column masking
<?xml version="1.0" encoding="UTF-8"?>
<vdb name="sample" version="1">
<model name="modelName">
<source name="source-name" translator-name="oracle" connection-jndi-name="java:myDS" />
</model>
<data-role name="base-role" any-authenticated="true">
<description>Masking</description>
<permission>
<resource-name>modelName.tblName.column1</resource-name>
<mask>CASE WHEN column1=user() THEN column1 END</mask>
</permission>
</data-role>
<data-role name="RoleA">
<description>Read/Insert access.</description>
<permission>
<resource-name>modelName.tblName</resource-name>
<allow-read>true</allow-read>
<allow-create>true</allow-create>
</permission>
<permission>
<resource-name>modelName.tblName.column1</resource-name>
<condition>column2='x'</condition>
<mask order="1">column1</mask>
</permission>
<mapped-role-name>role1</mapped-role-name>
</data-role>
</vdb>