[ https://issues.apache.org/jira/browse/DERBY-3095?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12535752 ]
EDAH-TALLY commented on DERBY-3095: ----------------------------------- <>Note that the delimited identifier "EVE" represents the user EVE which is the same user as the regular identifiers eve, EVE and EvE</> I didn't take this point into consideration, I therefore have to rethink the problem partly. It seems quite strange however and not really logical. It seems like saying "just pull the quotes and you're anyone else" ! During user deletion, the full user list is retrieved by SYSCS_GET_DATABASE_PROPERTY. It behaves simply : "eve" is retrieved as "eve" "EVE" as "EVE" "EvE" as "EvE" eve as eve EVE as EVE Eve as Eve ... <>Is that what your patch does?</> It does essentially 2 things : 1. It prevents a quoted identifier to lose its quotes by a call to parseQId(...) from parseId(StringReader r, boolean normalize, boolean normalizeToUpper) 2. It applies parsing and transformation to an application supplied identifier [ id in deleteId(String id, String list) ] . <>I can't really tell the behaviour you are trying to achieve</> I am trying to preserve a quoted identifier as quoted. If it loses its quotes, it is no longer the same user and can be anyone. Secondly, I think the identifier passed in by an app should be parsed the same way as individual users retrieved from an accesslist. > 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.