Search in sources :

Example 1 with GranteeManager

use of org.hsqldb_voltpatches.rights.GranteeManager in project voltdb by VoltDB.

the class Database method reopen.

/**
     * Opens this database.  The database should be opened after construction.
     * or reopened by the close(int closemode) method during a
     * "shutdown compact". Closes the log if there is an error.
     */
void reopen() {
    boolean isNew;
    setState(DATABASE_OPENING);
    try {
        databaseProperties = new HsqlDatabaseProperties(this);
        isNew = !DatabaseURL.isFileBasedDatabaseType(databaseType) || !databaseProperties.checkFileExists();
        if (isNew && urlProperties.isPropertyTrue(HsqlDatabaseProperties.url_ifexists)) {
            throw Error.error(ErrorCode.DATABASE_NOT_EXISTS, sName);
        }
        databaseProperties.load();
        databaseProperties.setURLProperties(urlProperties);
        compiledStatementManager.reset();
        nameManager = new HsqlNameManager(this);
        granteeManager = new GranteeManager(this);
        userManager = new UserManager(this);
        schemaManager = new SchemaManager(this);
        persistentStoreCollection = new PersistentStoreCollectionDatabase();
        bReferentialIntegrity = true;
        sessionManager = new SessionManager(this);
        txManager = new TransactionManager(this);
        collation = collation.getDefaultInstance();
        dbInfo = DatabaseInformation.newDatabaseInformation(this);
        databaseProperties.setDatabaseVariables();
        String version = databaseProperties.getProperty(HsqlDatabaseProperties.db_version);
        if (version.substring(0, 3).equals("1.7")) {
            schemaManager.createPublicSchema();
        }
        if (DatabaseURL.isFileBasedDatabaseType(databaseType)) {
            logger.openLog(this);
        }
        if (version.substring(0, 3).equals("1.7") || version.substring(0, 5).equals("1.8.0")) {
            HsqlName name = schemaManager.findSchemaHsqlName(SqlInvariants.PUBLIC_SCHEMA);
            if (name != null) {
                schemaManager.setDefaultSchemaHsqlName(name);
            }
        }
        if (isNew) {
            String tableType = urlProperties.getProperty(HsqlDatabaseProperties.hsqldb_default_table_type, "MEMORY");
            if ("CACHED".equalsIgnoreCase(tableType)) {
                schemaManager.setDefaultTableType(TableBase.CACHED_TABLE);
            }
            HsqlName name = nameManager.newHsqlName("SA", false, SchemaObject.GRANTEE);
            userManager.createUser(name, "");
            Session session = sessionManager.getSysSession();
            granteeManager.grant(name.name, SqlInvariants.DBA_ADMIN_ROLE_NAME, granteeManager.getDBARole());
            logger.writeToLog(session, "CREATE USER SA PASSWORD \'\' ADMIN");
            schemaManager.createPublicSchema();
            logger.writeToLog(session, "CREATE SCHEMA PUBLIC AUTHORIZATION DBA");
            logger.writeToLog(session, "SET DATABASE DEFAULT INITIAL SCHEMA PUBLIC");
            if (schemaManager.getDefaultTableType() == Table.CACHED_TABLE) {
                logger.writeToLog(session, "SET DATABASE DEFAULT TABLE TYPE CACHED");
            }
            logger.synchLogForce();
        }
        dbInfo.setWithContent(true);
    } catch (Throwable e) {
        logger.closeLog(Database.CLOSEMODE_IMMEDIATELY);
        logger.releaseLock();
        setState(DATABASE_SHUTDOWN);
        clearStructures();
        DatabaseManager.removeDatabase(this);
        if (!(e instanceof HsqlException)) {
            e = Error.error(ErrorCode.GENERAL_ERROR, e.toString());
        }
        throw (HsqlException) e;
    }
    setState(DATABASE_ONLINE);
}
Also used : HsqlDatabaseProperties(org.hsqldb_voltpatches.persist.HsqlDatabaseProperties) UserManager(org.hsqldb_voltpatches.rights.UserManager) HsqlName(org.hsqldb_voltpatches.HsqlNameManager.HsqlName) GranteeManager(org.hsqldb_voltpatches.rights.GranteeManager) PersistentStoreCollectionDatabase(org.hsqldb_voltpatches.persist.PersistentStoreCollectionDatabase)

Example 2 with GranteeManager

use of org.hsqldb_voltpatches.rights.GranteeManager in project voltdb by VoltDB.

the class DatabaseInformationMain method init.

/**
     * One time initialisation of instance attributes
     * at construction time. <p>
     *
     */
protected final void init() {
    ns = new DINameSpace(database);
    pi = new DIProcedureInfo(ns);
    // flag the Session-dependent cached tables
    Table t;
    for (int i = 0; i < sysTables.length; i++) {
        t = sysTables[i] = generateTable(i);
        if (t != null) {
            t.setDataReadOnly(true);
        }
    }
    GranteeManager gm = database.getGranteeManager();
    Right right = new Right();
    right.set(GrantConstants.SELECT, null);
    for (int i = 0; i < sysTableHsqlNames.length; i++) {
        if (sysTables[i] != null) {
            gm.grantSystemToPublic(sysTables[i], right);
        }
    }
    right = Right.fullRights;
    gm.grantSystemToPublic(SqlInvariants.YES_OR_NO, right);
    gm.grantSystemToPublic(SqlInvariants.TIME_STAMP, right);
    gm.grantSystemToPublic(SqlInvariants.CARDINAL_NUMBER, right);
    gm.grantSystemToPublic(SqlInvariants.CHARACTER_DATA, right);
    gm.grantSystemToPublic(SqlInvariants.SQL_CHARACTER, right);
    gm.grantSystemToPublic(SqlInvariants.SQL_IDENTIFIER_CHARSET, right);
    gm.grantSystemToPublic(SqlInvariants.SQL_IDENTIFIER, right);
    gm.grantSystemToPublic(SqlInvariants.SQL_TEXT, right);
}
Also used : Table(org.hsqldb_voltpatches.Table) Right(org.hsqldb_voltpatches.rights.Right) Constraint(org.hsqldb_voltpatches.Constraint) GranteeManager(org.hsqldb_voltpatches.rights.GranteeManager)

Aggregations

GranteeManager (org.hsqldb_voltpatches.rights.GranteeManager)2 Constraint (org.hsqldb_voltpatches.Constraint)1 HsqlName (org.hsqldb_voltpatches.HsqlNameManager.HsqlName)1 Table (org.hsqldb_voltpatches.Table)1 HsqlDatabaseProperties (org.hsqldb_voltpatches.persist.HsqlDatabaseProperties)1 PersistentStoreCollectionDatabase (org.hsqldb_voltpatches.persist.PersistentStoreCollectionDatabase)1 Right (org.hsqldb_voltpatches.rights.Right)1 UserManager (org.hsqldb_voltpatches.rights.UserManager)1