Potenzieller Fehler: setAutoLinkReference bei MySQL-Views
Posted: Sun Jan 29, 2012 7:48 pm
Hallo wieder JVx-Team,
Ich baue meine Applikation weiter und habe mich nun entschlossen, ähnlich wie bei der Packung-Applikation, bei der User-Administration nicht die Users-Tabelle anzufordern, da diese auch die Passworter enthält. Stattdessen defeinere ich eine View folgendermaßen (meine DB-Technologie ist nachwievor SQL, aber ich bereue es langsam):
Die Storage-Initialisierung sieht dann so aus:
Nun kriege ich Exceptions wie "Column USER_NAME" nicht definiert. Ist zwar in der Tat so, aber würde ich direkt mti der Tabelle "Users" kommunizieren gibt es keine Exceptions. Der Aufruf von getSubStorage liefert auch nichts. Warum kommt es also zu Problemen, wenn ich mit einer View arbeite? Lohnt sich überhaupt, die Passwörter so zu verstecken?
Vielen Dank für Ihre Zeit und Mühe!
Ich baue meine Applikation weiter und habe mich nun entschlossen, ähnlich wie bei der Packung-Applikation, bei der User-Administration nicht die Users-Tabelle anzufordern, da diese auch die Passworter enthält. Stattdessen defeinere ich eine View folgendermaßen (meine DB-Technologie ist nachwievor SQL, aber ich bereue es langsam):
- Code: Select all
CREATE VIEW ViewUsers AS SELECT
id, // Primary key in Users
username,
change_password,
active,
first_name,
last_name,
email, phone,
role_id, // Foreign key in Users
company_id // Foreign key in Users
FROM Users;
Die Storage-Initialisierung sieht dann so aus:
- Code: Select all
public DBStorage getUsers() throws Exception {
DBStorage dbsUsers = (DBStorage) get("users");
if (dbsUsers == null) {
dbsUsers = new DBStorage();
dbsUsers.setDBAccess(getDBAccess());
// For secutity reasons work with the view
//
dbsUsers.setFromClause("ViewUsers");
dbsUsers.setWritebackTable("Users");
dbsUsers.setAutoLinkReference(true);
dbsUsers.open();
put("users", dbsUsers);
}
return dbsUsers;
}
Nun kriege ich Exceptions wie "Column USER_NAME" nicht definiert. Ist zwar in der Tat so, aber würde ich direkt mti der Tabelle "Users" kommunizieren gibt es keine Exceptions. Der Aufruf von getSubStorage liefert auch nichts. Warum kommt es also zu Problemen, wenn ich mit einer View arbeite? Lohnt sich überhaupt, die Passwörter so zu verstecken?
Vielen Dank für Ihre Zeit und Mühe!