[英]Refresh MySQL connection object when privileges are changed for a user
我有一個 object 與用戶名:'user'到MySql中的數據庫的連接,現在我已經明確更改了該'用戶'的一些用戶權限,但它沒有對現有連接對象生效。 此權限更改僅適用於新連接 object。
例如:我有一個分配了所有權限的連接對象(conn),現在我更改了同一個連接對象(conn)的說(寫/讀)權限,但該對象(conn)仍然能夠執行選擇/插入操作.
當用戶的任何權限發生更改時,是否有辦法自動刷新連接 object。
我為你找到了這個 class,它可能會幫助https://www.codota.com/code/java/methods/android.database.DataSetObservable/notifyChanged但在你的地方我不會在 ZA2668CFFDE69ACBD1 中保存任何信息也許。 您可以嘗試創建將包含用戶信息的表,並在您需要僅為特權用戶運行某些方法時檢查此信息。 在我的舊項目中,我創建了這個表:
並創建檢查 access_right 到管理員面板等功能的方法
function 示例:
public class Blog extends Initialization {
private boolean stop;
private Statement st;
private ResultSet rs;
private String login;
private BufferedReader reader;
private BufferedWriter writer;
Blog(Statement st, String login, BufferedReader reader, BufferedWriter writer) {
this.st = st;
this.login = login;
this.reader = reader;
this.writer = writer;
}
private void checkRightsToCallAdministrationPanel() {
try {
String access_rightsString = "";
rs = st.executeQuery("SELECT access_id FROM users WHERE login='" + login + "';");
while (rs.next()) {
access_rightsString = rs.getString(1);
}
if (Integer.parseInt(access_rightsString) < 3) {
callAdministrationPanel();
} else {
writer.write("No such variant\n");
writer.flush();
}
} catch (IOException | SQLException e) {
e.printStackTrace();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.