From 0b2246c476239d2d4e7a93daa713b549bfca2bae Mon Sep 17 00:00:00 2001 From: mmichalek Date: Tue, 31 Jul 2018 10:57:22 -0400 Subject: [PATCH] 0003651: Log details about database permission failures --- .../android/AndroidDatabasePlatform.java | 12 ++++--- .../db/platform/AbstractDatabasePlatform.java | 34 ++++++++++++++----- .../db/platform/PermissionResult.java | 24 +++++++------ .../db/platform/ase/AseDatabasePlatform.java | 2 +- .../db2/Db2As400DatabasePlatform.java | 2 +- .../db/platform/db2/Db2DatabasePlatform.java | 2 +- .../platform/derby/DerbyDatabasePlatform.java | 2 +- .../firebird/FirebirdDatabasePlatform.java | 2 +- .../db/platform/h2/H2DatabasePlatform.java | 2 +- .../hsqldb/HsqlDbDatabasePlatform.java | 2 +- .../hsqldb2/HsqlDb2DatabasePlatform.java | 2 +- .../informix/InformixDatabasePlatform.java | 2 +- .../interbase/InterbaseDatabasePlatform.java | 3 +- .../mssql/MsSql2000DatabasePlatform.java | 7 ++-- .../platform/mysql/MySqlDatabasePlatform.java | 7 ++-- .../platform/nuodb/NuoDbDatabasePlatform.java | 12 ++++--- .../oracle/OracleDatabasePlatform.java | 4 +-- .../PostgreSqlDatabasePlatform.java | 4 +-- .../platform/raima/RaimaDatabasePlatform.java | 4 +-- .../redshift/RedshiftDatabasePlatform.java | 12 ++++--- .../SqlAnywhereDatabasePlatform.java | 2 +- .../sqlite/SqliteDatabasePlatform.java | 2 +- .../tibero/TiberoDatabasePlatform.java | 4 +-- .../voltdb/VoltDbDatabasePlatform.java | 12 ++++--- 24 files changed, 100 insertions(+), 61 deletions(-) diff --git a/symmetric-android/src/main/java/org/jumpmind/symmetric/android/AndroidDatabasePlatform.java b/symmetric-android/src/main/java/org/jumpmind/symmetric/android/AndroidDatabasePlatform.java index a28977c20f..d6f49a383b 100644 --- a/symmetric-android/src/main/java/org/jumpmind/symmetric/android/AndroidDatabasePlatform.java +++ b/symmetric-android/src/main/java/org/jumpmind/symmetric/android/AndroidDatabasePlatform.java @@ -117,25 +117,29 @@ protected Object parseInteger(String value) { @Override public PermissionResult getCreateSymTablePermission(Database database) { - PermissionResult result = new PermissionResult(PermissionType.CREATE_TABLE, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TABLE, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } @Override public PermissionResult getDropSymTablePermission() { - PermissionResult result = new PermissionResult(PermissionType.DROP_TABLE, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.DROP_TABLE, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } @Override public PermissionResult getAlterSymTablePermission(Database database) { - PermissionResult result = new PermissionResult(PermissionType.ALTER_TABLE, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.ALTER_TABLE, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } @Override public PermissionResult getDropSymTriggerPermission() { - PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } } diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java index 8e8b03e77c..4a1dc2120e 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java @@ -952,9 +952,21 @@ public List checkSymTablePermissions(PermissionType... permiss if (drop) { results.add(dropPermission); } + + logFailedResults(results); + return results; } + protected void logFailedResults(List results) { + for (PermissionResult result : results) { + if (Status.FAIL == result.getStatus()) { + log.info(String.format("Database permission check failed. Category: %s Permission Type: %s Details:\r\n%s", result.getCategory(), result.getPermissionType(), + result.getTestDetails()), result.getException()); + } + } + } + protected Table getPermissionTableDefinition() { Column idColumn = new Column("TEST_ID"); idColumn.setMappedType("INTEGER"); @@ -965,8 +977,10 @@ protected Table getPermissionTableDefinition() { protected PermissionResult getCreateSymTablePermission(Database database) { Table table = getPermissionTableDefinition(); + + String createSql = ddlBuilder.createTables(database, false); - PermissionResult result = new PermissionResult(PermissionType.CREATE_TABLE, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TABLE, createSql); getDropSymTablePermission(); try { @@ -984,7 +998,7 @@ protected PermissionResult getCreateSymTablePermission(Database database) { protected PermissionResult getDropSymTablePermission() { Table table = getPermissionTableDefinition(); - PermissionResult result = new PermissionResult(PermissionType.DROP_TABLE, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.DROP_TABLE, "dropping table " + table.getName() + "..."); try { if (getTableFromCache(table.getName(), true) != null) { @@ -1014,7 +1028,7 @@ protected PermissionResult getAlterSymTablePermission(Database database) { Table table = new Table(PERMISSION_TEST_TABLE_NAME, idColumn, valueColumn); Table alterTable = new Table(PERMISSION_TEST_TABLE_NAME, idColumn, valueColumn, alterColumn); - PermissionResult result = new PermissionResult(PermissionType.ALTER_TABLE, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.ALTER_TABLE, "altering table " + PERMISSION_TEST_TABLE_NAME + "..."); try { database.removeAllTablesExcept(); @@ -1034,7 +1048,7 @@ protected PermissionResult getAlterSymTablePermission(Database database) { protected PermissionResult getDropSymTriggerPermission() { String dropTriggerSql = "DROP TRIGGER TEST_TRIGGER"; - PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, dropTriggerSql); try { getSqlTemplate().update(dropTriggerSql); @@ -1048,22 +1062,26 @@ protected PermissionResult getDropSymTriggerPermission() { } protected PermissionResult getCreateSymTriggerPermission() { - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } protected PermissionResult getExecuteSymPermission() { - PermissionResult result = new PermissionResult(PermissionType.EXECUTE, Status.NOT_APPLICABLE); + PermissionResult result = new PermissionResult(PermissionType.EXECUTE, "NOT_APPLICABLE"); + result.setStatus(Status.NOT_APPLICABLE); return result; } protected PermissionResult getCreateSymRoutinePermission() { - PermissionResult result = new PermissionResult(PermissionType.CREATE_ROUTINE, Status.NOT_APPLICABLE); + PermissionResult result = new PermissionResult(PermissionType.CREATE_ROUTINE, "NOT_APPLICABLE"); + result.setStatus(Status.NOT_APPLICABLE); return result; } protected PermissionResult getCreateSymFunctionPermission() { - PermissionResult result = new PermissionResult(PermissionType.CREATE_FUNCTION, Status.NOT_APPLICABLE); + PermissionResult result = new PermissionResult(PermissionType.CREATE_FUNCTION, "NOT_APPLICABLE"); + result.setStatus(Status.NOT_APPLICABLE); return result; } diff --git a/symmetric-db/src/main/java/org/jumpmind/db/platform/PermissionResult.java b/symmetric-db/src/main/java/org/jumpmind/db/platform/PermissionResult.java index 0d19ec8a95..358bc7b11e 100644 --- a/symmetric-db/src/main/java/org/jumpmind/db/platform/PermissionResult.java +++ b/symmetric-db/src/main/java/org/jumpmind/db/platform/PermissionResult.java @@ -35,7 +35,7 @@ public enum PermissionCategory { private PermissionType permissionType; - private Status status; + private Status status = Status.FAIL; private Exception exception; @@ -43,6 +43,8 @@ public enum PermissionCategory { private PermissionCategory category; + private String testDetails; // e.g. description or statment(s) used on the test + private static Map categories = new TreeMap(); static { @@ -55,19 +57,12 @@ public enum PermissionCategory { categories.put(PermissionType.CREATE_ROUTINE, PermissionCategory.ADDITIONAL); categories.put(PermissionType.EXECUTE, PermissionCategory.ADDITIONAL); } - - public PermissionResult(PermissionType permissionType, Status status, Exception exception, String solution) { - this.setPermissionType(permissionType); - this.setStatus(status); - this.setException(exception); - this.setSolution(solution); - this.category = categories.get(permissionType); - } - public PermissionResult(PermissionType permissionType, Status status) { + public PermissionResult(PermissionType permissionType, String testDetails) { this.setPermissionType(permissionType); this.setStatus(status); this.category = categories.get(permissionType); + this.testDetails = testDetails; } public PermissionType getPermissionType() { @@ -110,6 +105,15 @@ public void setCategory(PermissionCategory category) { this.category = category; } + public String getTestDetails() { + return testDetails; + } + + public void setTestDetails(String testDetails) { + this.testDetails = testDetails; + } + + @Override public String toString() { return "Permission Type: " + permissionType + ", Status: " + status; } diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/ase/AseDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/ase/AseDatabasePlatform.java index b10bab5b3b..b272b038e5 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/ase/AseDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/ase/AseDatabasePlatform.java @@ -111,7 +111,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "create trigger TEST_TRIGGER on " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " for insert as begin select 1 end"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/db2/Db2As400DatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/db2/Db2As400DatabasePlatform.java index 408aa98aca..a5c797aeb0 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/db2/Db2As400DatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/db2/Db2As400DatabasePlatform.java @@ -53,7 +53,7 @@ public String getDefaultCatalog() { protected PermissionResult getCreateSymTablePermission(Database database) { Table table = getPermissionTableDefinition(); - PermissionResult result = new PermissionResult(PermissionType.CREATE_TABLE, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TABLE, "creating table " + table.getName() + "..."); getDropSymTablePermission(); try { diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/db2/Db2DatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/db2/Db2DatabasePlatform.java index 19ec806311..314bccdfe6 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/db2/Db2DatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/db2/Db2DatabasePlatform.java @@ -91,7 +91,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE TRIGGER TEST_TRIGGER AFTER UPDATE ON " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " FOR EACH ROW BEGIN ATOMIC END"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/derby/DerbyDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/derby/DerbyDatabasePlatform.java index 180b3b4e3a..701c23da25 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/derby/DerbyDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/derby/DerbyDatabasePlatform.java @@ -102,7 +102,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE TRIGGER TEST_TRIGGER AFTER UPDATE ON " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " FOR EACH ROW MODE DB2SQL INSERT INTO " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " VALUES(NULL,NULL)"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/firebird/FirebirdDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/firebird/FirebirdDatabasePlatform.java index b8c5afacc7..77d8766579 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/firebird/FirebirdDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/firebird/FirebirdDatabasePlatform.java @@ -82,7 +82,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE TRIGGER TEST_TRIGGER FOR " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " AFTER UPDATE AS BEGIN END"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/h2/H2DatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/h2/H2DatabasePlatform.java index 58e249df06..d17ff3b9a8 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/h2/H2DatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/h2/H2DatabasePlatform.java @@ -90,7 +90,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE TRIGGER TEST_TRIGGER AFTER UPDATE ON " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + "FOR EACH ROW CALL " + delimiter + "org.jumpmind.db.platform.h2.H2TestTrigger" + delimiter; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/hsqldb/HsqlDbDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/hsqldb/HsqlDbDatabasePlatform.java index e2e203be9f..7c07d83333 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/hsqldb/HsqlDbDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/hsqldb/HsqlDbDatabasePlatform.java @@ -82,7 +82,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE TRIGGER TEST_TRIGGER AFTER UPDATE ON " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " FOR EACH ROW INSERT INTO " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " VALUES(NULL,NULL)"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/hsqldb2/HsqlDb2DatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/hsqldb2/HsqlDb2DatabasePlatform.java index 7f517452a7..00b992d2b7 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/hsqldb2/HsqlDb2DatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/hsqldb2/HsqlDb2DatabasePlatform.java @@ -88,7 +88,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE TRIGGER TEST_TRIGGER AFTER UPDATE ON " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " FOR EACH ROW INSERT INTO " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " VALUES(NULL,NULL)"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/informix/InformixDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/informix/InformixDatabasePlatform.java index 65b1651309..4d6529f8ef 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/informix/InformixDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/informix/InformixDatabasePlatform.java @@ -105,7 +105,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE TRIGGER TEST_TRIGGER DELETE ON " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " FOR EACH ROW(DELETE FROM " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " WHERE TEST_ID IS NULL)"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/interbase/InterbaseDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/interbase/InterbaseDatabasePlatform.java index 7f609fd514..b77e43e666 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/interbase/InterbaseDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/interbase/InterbaseDatabasePlatform.java @@ -81,7 +81,8 @@ protected ISqlTemplate createSqlTemplateDirty() { @Override public PermissionResult getDropSymTriggerPermission() { - PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/mssql/MsSql2000DatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/mssql/MsSql2000DatabasePlatform.java index f64c3b6b6c..3285f1521c 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/mssql/MsSql2000DatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/mssql/MsSql2000DatabasePlatform.java @@ -109,7 +109,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE TRIGGER TEST_TRIGGER ON " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " AFTER UPDATE AS SELECT 1 GO"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); @@ -127,13 +127,14 @@ public PermissionResult getCreateSymFunctionPermission() { String routineSql = "CREATE FUNCTION TEST_FUNC() RETURNS INTEGER BEGIN RETURN 1; END"; String dropSql = "IF OBJECT_ID('TEST_FUNC') IS NOT NULL DROP FUNCTION TEST_FUNC"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_FUNCTION, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_FUNCTION, + dropSql + "\r\n" + routineSql + "\r\n" + dropSql); try { getSqlTemplate().update(dropSql); getSqlTemplate().update(routineSql); - result.setStatus(Status.PASS); getSqlTemplate().update(dropSql); + result.setStatus(Status.PASS); } catch (SqlException e) { result.setException(e); if (result.getSolution() != null) { diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/mysql/MySqlDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/mysql/MySqlDatabasePlatform.java index 530f023c35..e7cfe8ebc1 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/mysql/MySqlDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/mysql/MySqlDatabasePlatform.java @@ -107,7 +107,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE TRIGGER TEST_TRIGGER AFTER UPDATE ON " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " FOR EACH ROW INSERT INTO " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " VALUES(NULL,NULL)"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); @@ -125,13 +125,14 @@ public PermissionResult getCreateSymRoutinePermission() { String routineSql = "CREATE PROCEDURE TEST_PROC() BEGIN SELECT 1; END"; String dropSql = "DROP PROCEDURE IF EXISTS TEST_PROC"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_ROUTINE, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_ROUTINE, + dropSql + "\r\n" + routineSql + "\r\n" + dropSql); try { getSqlTemplate().update(dropSql); getSqlTemplate().update(routineSql); - result.setStatus(Status.PASS); getSqlTemplate().update(dropSql); + result.setStatus(Status.PASS); } catch (SqlException e) { result.setException(e); result.setSolution("Grant CREATE ROUTINE Privilege"); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/nuodb/NuoDbDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/nuodb/NuoDbDatabasePlatform.java index 5dcc0c3c12..129e352ede 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/nuodb/NuoDbDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/nuodb/NuoDbDatabasePlatform.java @@ -92,13 +92,14 @@ public PermissionResult getCreateSymTriggerPermission() { String dropTriggerSql = "DROP TRIGGER IF EXISTS TEST_TRIGGER"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, + dropTriggerSql + "\r\n" + triggerSql + "\r\n" + dropTriggerSql); try { getSqlTemplate().update(dropTriggerSql); getSqlTemplate().update(triggerSql); - result.setStatus(Status.PASS); getSqlTemplate().update(dropTriggerSql); + result.setStatus(Status.PASS); } catch (SqlException e) { result.setException(e); result.setSolution("Grant CREATE TRIGGER permission or TRIGGER permission"); @@ -112,13 +113,14 @@ public PermissionResult getCreateSymRoutinePermission() { String routineSql = "CREATE PROCEDURE TEST_PROC() AS VAR myVar = 1; END_PROCEDURE"; String dropSql = "DROP PROCEDURE IF EXISTS TEST_PROC"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_ROUTINE, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_ROUTINE, + dropSql + "\r\n" + routineSql + "\r\n" + dropSql); try { getSqlTemplate().update(dropSql); getSqlTemplate().update(routineSql); - result.setStatus(Status.PASS); getSqlTemplate().update(dropSql); + result.setStatus(Status.PASS); } catch (SqlException e) { result.setException(e); result.setSolution("Grant CREATE ROUTINE Privilege"); @@ -129,7 +131,7 @@ public PermissionResult getCreateSymRoutinePermission() { @Override protected PermissionResult getDropSymTriggerPermission() { String dropTriggerSql = "DROP TRIGGER IF EXISTS TEST_TRIGGER"; - PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, dropTriggerSql); try { getSqlTemplate().update(dropTriggerSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/oracle/OracleDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/oracle/OracleDatabasePlatform.java index d510ad050b..806d17faa5 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/oracle/OracleDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/oracle/OracleDatabasePlatform.java @@ -108,7 +108,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE OR REPLACE TRIGGER TEST_TRIGGER AFTER UPDATE ON " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " BEGIN END"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); @@ -128,7 +128,7 @@ public PermissionResult getExecuteSymPermission() { String executeSql = "SELECT DBMS_LOB.GETLENGTH('TEST'), UTL_RAW.CAST_TO_RAW('TEST') FROM DUAL"; - PermissionResult result = new PermissionResult(PermissionType.EXECUTE, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.EXECUTE, executeSql); try { getSqlTemplate().update(executeSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDatabasePlatform.java index b5d9174ab8..ae43bfea34 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/postgresql/PostgreSqlDatabasePlatform.java @@ -206,7 +206,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE OR REPLACE FUNCTION TEST_TRIGGER() RETURNS trigger AS $$ BEGIN END $$ LANGUAGE plpgsql"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); @@ -223,7 +223,7 @@ public PermissionResult getCreateSymTriggerPermission() { public PermissionResult getDropSymTriggerPermission() { String dropTriggerSql = "DROP FUNCTION TEST_TRIGGER()"; - PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, PermissionResult.Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, dropTriggerSql); try { getSqlTemplate().update(dropTriggerSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/raima/RaimaDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/raima/RaimaDatabasePlatform.java index 73ad7f4dfe..b1136616c2 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/raima/RaimaDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/raima/RaimaDatabasePlatform.java @@ -74,7 +74,7 @@ public String getDefaultCatalog() { public PermissionResult getCreateSymTriggerPermission() { String createTriggerSql = "create trigger test_trigger after insert on " + PERMISSION_TEST_TABLE_NAME + " for each row begin atomic end"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, createTriggerSql); try { getSqlTemplate().update(createTriggerSql); @@ -90,7 +90,7 @@ public PermissionResult getCreateSymTriggerPermission() { @Override protected PermissionResult getDropSymTriggerPermission() { String dropTriggerSql = "drop trigger test_trigger"; - PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, dropTriggerSql); try { getSqlTemplate().update(dropTriggerSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/redshift/RedshiftDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/redshift/RedshiftDatabasePlatform.java index f78f3c058b..f428bb76e7 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/redshift/RedshiftDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/redshift/RedshiftDatabasePlatform.java @@ -97,25 +97,29 @@ public boolean isClob(int type) { @Override public PermissionResult getCreateSymTablePermission(Database database) { - PermissionResult result = new PermissionResult(PermissionType.CREATE_TABLE, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TABLE, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } @Override public PermissionResult getDropSymTablePermission() { - PermissionResult result = new PermissionResult(PermissionType.DROP_TABLE, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.DROP_TABLE, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } @Override public PermissionResult getAlterSymTablePermission(Database database) { - PermissionResult result = new PermissionResult(PermissionType.ALTER_TABLE, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.ALTER_TABLE, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } @Override public PermissionResult getDropSymTriggerPermission() { - PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } } diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/sqlanywhere/SqlAnywhereDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/sqlanywhere/SqlAnywhereDatabasePlatform.java index c402dc2528..49197df5a5 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/sqlanywhere/SqlAnywhereDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/sqlanywhere/SqlAnywhereDatabasePlatform.java @@ -109,7 +109,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE OR REPLACE TRIGGER TEST_TRIGGER AFTER UPDATE ON " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " BEGIN SELECT 1 END"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/sqlite/SqliteDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/sqlite/SqliteDatabasePlatform.java index 591bbc8af1..76c6dd0406 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/sqlite/SqliteDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/sqlite/SqliteDatabasePlatform.java @@ -137,7 +137,7 @@ protected PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE TRIGGER TEST_TRIGGER AFTER UPDATE ON " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + "FOR EACH ROW BEGIN SELECT 1; END"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/tibero/TiberoDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/tibero/TiberoDatabasePlatform.java index 03ac095331..e3fb8b0719 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/tibero/TiberoDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/tibero/TiberoDatabasePlatform.java @@ -79,7 +79,7 @@ public PermissionResult getCreateSymTriggerPermission() { String triggerSql = "CREATE OR REPLACE TRIGGER TEST_TRIGGER AFTER UPDATE ON " + delimiter + PERMISSION_TEST_TABLE_NAME + delimiter + " BEGIN END"; - PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TRIGGER, triggerSql); try { getSqlTemplate().update(triggerSql); @@ -99,7 +99,7 @@ public PermissionResult getExecuteSymPermission() { String executeSql = "SELECT DBMS_LOB.GETLENGTH('TEST'), UTL_RAW.CAST_TO_RAW('TEST') FROM DUAL"; - PermissionResult result = new PermissionResult(PermissionType.EXECUTE, Status.FAIL); + PermissionResult result = new PermissionResult(PermissionType.EXECUTE, executeSql); try { getSqlTemplate().update(executeSql); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/voltdb/VoltDbDatabasePlatform.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/voltdb/VoltDbDatabasePlatform.java index 6de2afa643..0b95160835 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/voltdb/VoltDbDatabasePlatform.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/platform/voltdb/VoltDbDatabasePlatform.java @@ -123,25 +123,29 @@ protected VoltDbJdbcSqlTemplate createSqlTemplate() { @Override public PermissionResult getCreateSymTablePermission(Database database) { - PermissionResult result = new PermissionResult(PermissionType.CREATE_TABLE, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.CREATE_TABLE, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } @Override public PermissionResult getDropSymTablePermission() { - PermissionResult result = new PermissionResult(PermissionType.DROP_TABLE, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.DROP_TABLE, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } @Override public PermissionResult getAlterSymTablePermission(Database database) { - PermissionResult result = new PermissionResult(PermissionType.ALTER_TABLE, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.ALTER_TABLE, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } @Override public PermissionResult getDropSymTriggerPermission() { - PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, Status.UNIMPLEMENTED); + PermissionResult result = new PermissionResult(PermissionType.DROP_TRIGGER, "UNIMPLEMENTED"); + result.setStatus(Status.UNIMPLEMENTED); return result; } }