Trigger access control failure on NEW
"R.W. Shore" <[email protected]>
| Newsgroups | gmane.comp.db.mckoi |
|---|---|
| Message-ID | <[email protected]> |
The following is an extract from the stack traces that appear in the Mckoi
standard error stream when my trigger fires. The line number in my trigger
class indicates that the error occurs on a select count(*) from NEW. Anybody
have any suggestions on what I'm doing wrong??
=========== Error stack trace extract =============
com.mckoi.database.jdbc.MSQLException: User not permitted to select from
table: SYS_INFO.NEW
at
com.mckoi.database.jdbcserver.AbstractJDBCDatabaseInterface.handleExecuteThr
owable(AbstractJDBCDatabaseInterface.java:289)
at
com.mckoi.database.jdbcserver.AbstractJDBCDatabaseInterface.execQuery(Abstra
ctJDBCDatabaseInterface.java:479)
at
com.mckoi.database.jdbc.MConnection.executeQuery(MConnection.java:453)
at
com.mckoi.database.jdbc.MConnection.executeQueries(MConnection.java:436)
at
com.mckoi.database.jdbc.MStatement.executeQueries(MStatement.java:193)
at
com.mckoi.database.jdbc.MStatement.executeQuery(MStatement.java:167)
at
com.mckoi.database.jdbc.MStatement.executeQuery(MStatement.java:222)
at
com.cst.capture.trigger.mckoi.MyTableTrigger.insert(MyTable.java:15)
============ Offending code ==================
package com.cst.capture.trigger.mckoi;
import com.mckoi.database.ProcedureConnection;
import java.sql.*;
public class MyTableTrigger {
public static void insert(ProcedureConnection p) {
Statement s = null;
ResultSet r = null;
try {
Connection c = p.getJDBCConnection();
s = c.createStatement();
r = s.executeQuery("select USER()");
r.next();
String userid = r.getString(1);
r.close();
r = s.executeQuery("select count(*) from NEW");
r.next();
int cnt = r.getInt(1);
System.out.println("INSERT on @MyTable from "+userid+", count="+cnt);
} catch(Throwable t) {
t.printStackTrace();
System.err.println("Table @MyTable");
} finally {
try {
r.close();
} catch(Throwable q) {
// nada
}
try {
s.close();
} catch(Throwable q) {
// nada
}
}
}
=== remainder of code removed ===