db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-4829) dblook fails if there is a column privilege on a table whose name contains a quote
Date Fri, 01 Oct 2010 10:17:33 GMT

    [ https://issues.apache.org/jira/browse/DERBY-4829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12916850#action_12916850
] 

Knut Anders Hatlen commented on DERBY-4829:
-------------------------------------------

And when the query is fixed, the generated GRANT statement that's printed by dblook won't
be usable because

a) column names are not quoted

b) the table name is missing

> dblook fails if there is a column privilege on a table whose name contains a quote
> ----------------------------------------------------------------------------------
>
>                 Key: DERBY-4829
>                 URL: https://issues.apache.org/jira/browse/DERBY-4829
>             Project: Derby
>          Issue Type: Bug
>          Components: Tools
>    Affects Versions: 10.6.2.1
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>
> Create a table with a column privilege like this in ij:
> connect 'jdbc:derby:db;create=true';
> call syscs_util.syscs_set_database_property('derby.database.sqlAuthorization', 'true');
> create table """" (x int);
> disconnect;
> connect 'jdbc:derby:db;shutdown=true';
> connect 'jdbc:derby:db';
> grant select (x) on """" to someone;
> exit;
> If you then run dblook -d jdbc:derby:db, you'll see this:
> -- ----------------------------------------------
> -- GRANT statements for columns
> -- ----------------------------------------------
> -- Note: At least one unexpected error/warning message was
> -- encountered during DDL generation.  See dblook.log
> -- to review the message(s).
> And in dblook.log you'll find this:
> java.sql.SQLException: Invalid cursor state - no current row.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.ConnectionChild.newSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedResultSet.checkOnRow(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedResultSet.getColumn(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedResultSet.getString(Unknown Source)
> 	at org.apache.derby.impl.tools.dblook.DB_GrantRevoke.mapColumnsToNames(Unknown Source)
> 	at org.apache.derby.impl.tools.dblook.DB_GrantRevoke.columnPrivStatement(Unknown Source)
> 	at org.apache.derby.impl.tools.dblook.DB_GrantRevoke.generateColumnPrivs(Unknown Source)
> 	at org.apache.derby.impl.tools.dblook.DB_GrantRevoke.doAuthorizations(Unknown Source)
> 	at org.apache.derby.tools.dblook.go(Unknown Source)
> 	at org.apache.derby.tools.dblook.<init>(Unknown Source)
> 	at org.apache.derby.tools.dblook.main(Unknown Source)
> Caused by: java.sql.SQLException: Invalid cursor state - no current row.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
Source)
> 	... 16 more
> -- **--> DEBUG: Invalid cursor state - no current row.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message