簡體   English   中英

HSQLDB-如何授予特權?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM