[
https://issues.apache.org/jira/browse/DERBY-3095?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12535615
]
Daniel John Debrunner commented on DERBY-3095:
----------------------------------------------
I agree there's a bug, I just want to ensure any change still works correctly
when CURRENT_USER name is passed in.
My assertion is that the username passed into these routines (without any
modification) is equivalent to value of an username identifier in the SQL
language after it has been parsed by the SQL engine. This is also known as "how
it is stored in the SQL engine" [JDBC].
VALUES SYSCS_UTIL.SYSCS_GET_USER_ACCESS('eVe'); -- corresponds to the
identifier "eVe"
VALUES SYSCS_UTIL.SYSCS_GET_USER_ACCESS('EVE'); -- corresponds to the identifer
eve, EVE, "EVE" or EvE etc.
Note that though how users names are represented in the derby.* properties may
or may not match how a SQL engine would store them. For historical reasons in
some (all?) cases the values in a derby.* property may be as a delimited
identifier, e.g. "eVe".
Note that the Derby builtin users are not created through a SQL identifier in
the SQL language, e.g. in a CREATE USER statement. They are created by setting
properties and are thus not "stored in the SQL engine".
Is that what your patch does? From the comments in this jira entry and the code
I can't really tell the behaviour you are trying to achieve.
> CALL SYSCS_UTIL.SYSCS_SET_USER_ACCESS(?, null) FAILS
> ----------------------------------------------------
>
> Key: DERBY-3095
> URL: https://issues.apache.org/jira/browse/DERBY-3095
> Project: Derby
> Issue Type: Bug
> Components: JDBC, Network Client
> Affects Versions: 10.3.1.4
> Environment: Linux 2.6.17-13mdv #1 SMP Fri Mar 23 15:18:36 EDT 2007
> x86_64 AMD Athlon(tm) 64 Processor 3000+ GNU/Linux
> Reporter: EDAH-TALLY
> Attachments: 3095_00.diff, 3095_01.diff, d3095.sql,
> REGTEST3095_00.zip, REGTEST3095_01.zip, Reproduce3095.zip
>
>
> Sorry to bother you again.
> CALL SYSCS_UTIL.SYSCS_SET_USER_ACCESS(?, 'NOACCESS') FAILS and here's the
> stack trace :
> ******************************************************************************************
> java.sql.SQLException: Droit d'accès 'NOACCESS' inconnu.
> at
> org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown
> Source)
> at org.apache.derby.client.am.SqlException.getSQLException(Unknown
> Source)
> at org.apache.derby.client.am.PreparedStatement.execute(Unknown
> Source)
> at com.somecom.createUser(someAPP.java:190)
> at com.somecom.grantKeys(someAPP.java:288)
> at com.somecom.showGrantKeys(someAPP.java:269)
> at com.somecom.MDIMenuClicked(someAPP.java:620)
> at com.somecom.access$000(someAPP.java:15)
> at com.somecom$5.actionPerformed(someAPP.java:564)
> at
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
> at
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
> at
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
> at
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
> at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
> at
> javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1216)
> at
> javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1257)
> at java.awt.Component.processMouseEvent(Component.java:6038)
> at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
> at java.awt.Component.processEvent(Component.java:5803)
> at java.awt.Container.processEvent(Container.java:2058)
> at java.awt.Component.dispatchEventImpl(Component.java:4410)
> at java.awt.Container.dispatchEventImpl(Container.java:2116)
> at java.awt.Component.dispatchEvent(Component.java:4240)
> at
> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
> at
> java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
> at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
> at java.awt.Container.dispatchEventImpl(Container.java:2102)
> at java.awt.Window.dispatchEventImpl(Window.java:2429)
> at java.awt.Component.dispatchEvent(Component.java:4240)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
> at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
> at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
> at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
> at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
> at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
> Caused by: org.apache.derby.client.am.SqlException: Droit d'accès 'NOACCESS'
> inconnu.
> at org.apache.derby.client.am.Statement.completeExecute(Unknown
> Source)
> at
> org.apache.derby.client.net.NetStatementReply.parseEXCSQLSTTreply(Unknown
> Source)
> at
> org.apache.derby.client.net.NetStatementReply.readExecuteCall(Unknown Source)
> at org.apache.derby.client.net.StatementReply.readExecuteCall(Unknown
> Source)
> at org.apache.derby.client.net.NetStatement.readExecuteCall_(Unknown
> Source)
> at org.apache.derby.client.am.Statement.readExecuteCall(Unknown
> Source)
> at org.apache.derby.client.am.PreparedStatement.flowExecute(Unknown
> Source)
> at org.apache.derby.client.am.PreparedStatement.executeX(Unknown
> Source)
> ... 34 more
> *********************************************************************************************
> FULLACCESS : OK
> READONLYACCESS : OK
> NOACCESS : FAILURE
> By the way, the CONNECTION_PERMISSION parameter in the documentation is not
> up to date.
> Thank you for considering.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.