[英]HSQLDB - how to grant privileges?
嘗試在HSQLDB上運行SQL時,出現以下異常:
java.sql.SQLSyntaxErrorException:用戶缺乏特權或未找到對象:ADMIN在org.hsqldb.jdbc.JDBCUtil.sqlException(未知源)在org.hsqldb.jdbc.JDBCUtil.sqlException(未知源)在org.hsqldb.jdbc處。 org.hsqldb.jdbc.JDBCConnection.prepareStatement(未知源)上的JDBCPreparedStatement。(未知源)
編輯:這就是我創建Connection
對象的方式:
public static Connection getConnection(){
Connection conn = null;
try {
Class.forName("org.hsqldb.jdbcDriver");
conn = DriverManager.getConnection("jdbc:hsqldb:mem:test://localhost","sa","");
}
catch (Exception e) {
e.printStackTrace();
}
return conn;
}
這是我准備的聲明:
java.sql.PreparedStatement prSelect = con.prepareStatement("SELECT * FROM PUBLIC.ADMIN Where USERNAME=? AND PASSWORD=?;");
如何授予用戶特權? 目前,我正在使用SA用戶。
編輯2:這是我建立的架構-
CREATE TABLE PUBLIC.SHOW_ORDER(
ORDER_CODE INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
CLIENT_ID VARCHAR(10),
NUMBER_OF_TICKETS INTEGER,
SHOW_CODE INTEGER,
CLIENT_NAME VARCHAR(25),
TOTAL_PRICE INTEGER,
PRIMARY KEY (ORDER_CODE),
);
CREATE TABLE PUBLIC.SHOW
(
CODE INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
MUSIC_TYPE INTEGER,
NUMBER_OF_SEATS INTEGER,
DESCRIPTION VARCHAR(100),
S_DATE DATE,
SEATS_TAKEN INTEGER,
PRIMARY KEY (CODE)
);
CREATE TABLE PUBLIC.SYS_MUSIC_TYPE (
CODE INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
DESCRIPTION VARCHAR(100),
PRIMARY KEY (CODE)
);
CREATE TABLE PUBLIC.ADMIN
(
USERNAME VARCHAR(25),
PASSWORD VARCHAR(25) NOT NULL,
PRIMARY KEY (USERNAME)
);
一些對您最有用的DDL語句是CREATE USER,CREATE ROLE和GRANT。
這是DDL語句,用於使用分配的密碼創建新用戶:
CREATE USER "CENASSIST" PASSWORD 'thepassword';
此DDL語句創建一個ROLE,可以為其分配一組權限。 然后將角色分配給上面創建的用戶:
CREATE ROLE "FRONT_END";
GRANT FRONT_END TO "CENASSIST";
此DDL塊為創建的FRONT_END角色分配權限。 權限用於表訪問:
GRANT SELECT, UPDATE, INSERT ON TABLE Clients TO FRONT_END;
GRANT SELECT, UPDATE, INSERT ON TABLE Rotations TO FRONT_END;
GRANT SELECT, UPDATE, INSERT ON TABLE Institutions TO FRONT_END;
GRANT SELECT, UPDATE, INSERT ON TABLE Client_MRNs TO FRONT_END;
GRANT SELECT, UPDATE, INSERT ON TABLE Payers TO FRONT_END;
HSQLDB具有出色的在線手冊,其中詳細介紹了用於權限和訪問控制的DDL語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.