DatabaseMetaData dbMetaData; ResultSet db_resultSet; try { dbMetaData = dbConnection.getMetaData(); db_resultSet = dbMetaData.getTables(catalog, schemaPattern, tableNamePattern, tableTypes); schemas.removeAllElements(); tables.removeAllElements(); while (db_resultSet.next()) { // ************************************************************ // PostgreSQL databases may have schemas that limit access to // tables by users. So make a check and remove tables that are // not accessable by the user. if (subProtocol.equals("postgresql")) { db_resultSet = dbMetaData.getTablePrivileges(db, "", "%"); while (db_resultSet.next()) { String tableName, grantee, user; tableName = db_resultSet.getString("TABLE_NAME"); if (tables.contains(tableName)) { grantee = db_resultSet.getString("GRANTEE"); user = MyJSQLView_Access.getCurrentUser(); if (tables.contains(tableName) && !grantee.equals(user)) tables.remove(tableName); } } } db_resultSet.close(); } catch (SQLException e) { throw e; }