]
RH Bugzilla Integration commented on TEIIDDES-1990:
---------------------------------------------------
Van Halbert <vhalbert(a)redhat.com> changed the Status of [bug
There is no way to edit a vdb's data role for sysadmin by Teiid
Desginer
------------------------------------------------------------------------
Key: TEIIDDES-1990
URL:
https://issues.jboss.org/browse/TEIIDDES-1990
Project: Teiid Designer
Issue Type: Bug
Components: Dialogs
Affects Versions: 7.8
Reporter: Van Halbert
Assignee: Johnathon Lee
Description of problem:
When user creates a data role for a VDB, only read permission will be added to sysadmin.
Thus, user cannot execute SYSADMIN.refreshMatView() by the lucking of the execute
permission.
Version-Release number of selected component (if applicable):
JBDS 5.0.2.GA
Teiid Designer 7.7.4.v20130801-1634-H7-Final
Steps to Reproduce:
1. create a VDB
2. add a new Data Role and save
3. deploy it
4. send query to execute SYSADMIN.refreshMatView()
I modified $JBOSS_HOME/sample/quickstarts/eds_simple_jdbc_client/src/JDBCClient.java to
send a query. as follows.
boolean result = statement.execute(sql);
System.out.println("result:"+result);
Actual results:
**server log**
15:23:32,307 WARN [PROCESSOR] Processing exception 'User <user@teiid-security>
is not entitled to action <EXECUTE> for 1 or more of the
groups/elements/procedures.' for request ZGnGSBd7pxlU.0. Exception type
org.teiid.api.exception.query.QueryValidatorException thrown from
org.teiid.dqp.internal.process.Request.validateWithVisitor(Request.java:342). Enable more
detailed logging to see the entire stacktrace.
15:23:32,363 WARN [PROCESSOR] Processing exception 'User <user@teiid-security>
is not entitled to action <EXECUTE> for 1 or more of the
groups/elements/procedures.' for request RABFD6OPr5UQ.0. Exception type
org.teiid.api.exception.query.QueryValidatorException thrown from
org.teiid.dqp.internal.process.Request.validateWithVisitor(Request.java:342). Enable more
detailed logging to see the entire stacktrace.
**client console**
[hfuruich@dhcp-217-119 eds_simple_jdbc_client]$ ant runtest -Dprompt=true
Buildfile:
/home/hfuruich/product/eds-531/jboss-soa-p-5/jboss-as/samples/quickstarts/eds_simple_jdbc_client/build.xml
[echo] product.dir=/home/hfuruich/product/eds-531/jboss-soa-p-5/jboss-as
[echo] default
jbossesb-quickstart-override:
jbossesb-source-dependencies:
compile.simpleclient:
[javac]
/home/hfuruich/product/eds-531/jboss-soa-p-5/jboss-as/samples/quickstarts/eds_simple_jdbc_client/build.xml:79:
warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last;
set to false for repeatable builds
prompt:
[input] Enter server name or x [exit]: [localhost]
[echo] product.dir=/home/hfuruich/product/eds-531/jboss-soa-p-5/jboss-as
[echo] default
validate.parm:
[input] Enter Teiid port or x [exit]: [31000]
[echo] product.dir=/home/hfuruich/product/eds-531/jboss-soa-p-5/jboss-as
[echo] default
validate.parm:
[input] Enter Teiid VDB or x [exit]: [MarketData]
SampleVDB
[echo] product.dir=/home/hfuruich/product/eds-531/jboss-soa-p-5/jboss-as
[echo] default
validate.parm:
[input] Enter sql command x [exit]: [select stock.* from (call
MarketData.getTextFiles('*.txt')) f, TEXTTABLE(f.file COLUMNS symbol string, price
bigdecimal HEADER) stock]
EXEC SYSADMIN.refreshMatView(viewname=>'TestMySQLView.sample.odatatest',
invalidate=>true)
[echo] product.dir=/home/hfuruich/product/eds-531/jboss-soa-p-5/jboss-as
[echo] default
validate.parm:
setdefaults:
runtest:
[echo] Running Test Query: EXEC
SYSADMIN.refreshMatView(viewname=>'TestMySQLView.sample.odatatest',
invalidate=>true)
[java] HOST:PORT:VDB - localhost:31000:SampleVDB
[java] Executing using the TeiidDriver against VDB: SampleVDB
[java] org.teiid.jdbc.TeiidSQLException: Remote
org.teiid.api.exception.query.QueryValidatorException: User <user@teiid-security> is
not entitled to action <EXECUTE> for 1 or more of the groups/elements/procedures.
[java] -----------------------------------
[java] at
org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:113)Executing using the
TeiidDataSource against VDB: SampleVDB
[java]
[java] at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:70)
[java] at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:636)
[java] at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:62)
[java] at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:547)
[java] at org.teiid.client.util.ResultsFuture.done(ResultsFuture.java:130)
[java] at org.teiid.client.util.ResultsFuture.access$200(ResultsFuture.java:37)
[java] at
org.teiid.client.util.ResultsFuture$1.receiveResults(ResultsFuture.java:75)
[java] at
org.teiid.net.socket.SocketServerInstanceImpl.receivedMessage(SocketServerInstanceImpl.java:222)
[java] at
org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:257)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:597)
[java] at
org.teiid.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:101)
[java] at com.sun.proxy.$Proxy1.read(Unknown Source)
[java] at
org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:356)
[java] at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:556)
[java] at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:318)
[java] at JDBCClient.execute(JDBCClient.java:75)
[java] at JDBCClient.main(JDBCClient.java:43)
[java] Caused by: org.teiid.core.TeiidProcessingException: Remote
org.teiid.api.exception.query.QueryValidatorException: User <user@teiid-security> is
not entitled to action <EXECUTE> for 1 or more of the groups/elements/procedures.
[java] at
org.teiid.dqp.internal.process.Request.validateWithVisitor(Request.java:342)
[java] at
org.teiid.dqp.internal.process.DefaultAuthorizationValidator.validate(DefaultAuthorizationValidator.java:50)
[java] at org.teiid.dqp.internal.process.Request.validateAccess(Request.java:488)
[java] at org.teiid.dqp.internal.process.Request.generatePlan(Request.java:402)
[java] at org.teiid.dqp.internal.process.Request.processRequest(Request.java:469)
[java] at
org.teiid.dqp.internal.process.RequestWorkItem.processNew(RequestWorkItem.java:520)
[java] at
org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:277)
[java] at
org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:49)
[java] at
org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:216)
[java] at
org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:244)
[java] at
org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:122)
[java] at
org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:292)
[java] at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
[java] at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
[java] at java.lang.Thread.run(Thread.java:662)
[java] org.teiid.jdbc.TeiidSQLException: Remote
org.teiid.api.exception.query.QueryValidatorException: User <user@teiid-security> is
not entitled to action <EXECUTE> for 1 or more of the groups/elements/procedures.
[java] at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:113)
[java] at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:70)
[java] at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:636)
[java] at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:62)
[java] at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:547)
[java] at org.teiid.client.util.ResultsFuture.done(ResultsFuture.java:130)
[java] at org.teiid.client.util.ResultsFuture.access$200(ResultsFuture.java:37)
[java] at
org.teiid.client.util.ResultsFuture$1.receiveResults(ResultsFuture.java:75)
[java] at
org.teiid.net.socket.SocketServerInstanceImpl.receivedMessage(SocketServerInstanceImpl.java:222)
[java] at
org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:257)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:597)
[java] at
org.teiid.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:101)
[java] at com.sun.proxy.$Proxy1.read(Unknown Source)
[java] at
org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:356)
[java] at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:556)
[java] at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:318)
[java] at JDBCClient.execute(JDBCClient.java:75)
[java] at JDBCClient.main(JDBCClient.java:48)
[java] Caused by: org.teiid.core.TeiidProcessingException: Remote
org.teiid.api.exception.query.QueryValidatorException: User <user@teiid-security> is
not entitled to action <EXECUTE> for 1 or more of the groups/elements/procedures.
[java] at
org.teiid.dqp.internal.process.Request.validateWithVisitor(Request.java:342)
[java] at
org.teiid.dqp.internal.process.DefaultAuthorizationValidator.validate(DefaultAuthorizationValidator.java:50)
[java] at org.teiid.dqp.internal.process.Request.validateAccess(Request.java:488)
[java] at org.teiid.dqp.internal.process.Request.generatePlan(Request.java:402)
[java] at org.teiid.dqp.internal.process.Request.processRequest(Request.java:469)
[java] at
org.teiid.dqp.internal.process.RequestWorkItem.processNew(RequestWorkItem.java:520)
[java] at
org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:277)
[java] at
org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:49)
[java] at
org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:216)
[java] at
org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:244)
[java] at
org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:122)
[java] at
org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:292)
[java] at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
[java] at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
[java] at java.lang.Thread.run(Thread.java:662)
BUILD SUCCESSFUL
Total time: 47 seconds
Expected results:
User can edit permission for sysadmin by JBDS, so that SYSADMIN.refreshMatView() can be
executed as expected
Additional info:
I tried to edit a vdb.xml directly, but there is no file under a teiid project
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: