hibernate (grails) mit Oracle-11g - Unzureichende Privilegien

Bin ich mit Grails 1.3.4, verwendet Hibernate, gegen eine Oracle 11g Datenbank. Meine Anwendung nicht auf Start, mit der folgenden Fehlermeldung:

2010-11-04 09:45:34,671 INFO  [grails.spring.BeanBuilder] [RuntimeConfiguration] Configuring data source for environment: TEST 
2010-11-04 09:45:36,812 ERROR [org.hibernate.util.JDBCExceptionReporter] ORA-01031: insufficient privileges

2010-11-04 09:45:36,812 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate] could not complete schema update 
org.hibernate.exception.SQLGrammarException: could not get table metadata: MY_TABLE
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)

Wenn ich, fügen Sie den folgenden in Oracle, um meine Datenbank-Benutzer Rolle, es funktioniert. Aber, meine DBA-Staaten in der Produktion, er wird nicht gewähren, ALLES zu ANALYSIEREN, weil es nicht mehr gebraucht wird in 11G, und es vermasselt seinen Statistiken. Was ist die Auflösung?

GRANT ANALYZE ANY to APP_USER_ROLE;

Mehr setup info unter:

Grails-DataSource.groovy

    dataSource {
        driverClassName = "oracle.jdbc.driver.OracleDriver"
        username = "APP_USER"
        password = "APP_USER_PASS"
        dbCreate = "update"
        url = "jdbc:oracle:thin:@MY_servername:1521:MY_SCHEMANAME"
        dialect="org.hibernate.dialect.Oracle10gDialect"
    }    
    hibernate {
        default_schema="WEBSYS"
    }

Grails-domain-Objekt mit Hilfe der Tabelle:

static mapping = {
    table 'MY_TABLE'
    id generator:'sequence',params:[sequence:'MY_SEQ']
}

Oracle Benutzer und Rollen einrichten:

CREATE ROLE APP_USER_ROLE NOT IDENTIFIED;
GRANT QUERY REWRITE TO APP_USER_ROLE;
GRANT CREATE SESSION TO APP_USER_ROLE;
GRANT GLOBAL QUERY REWRITE TO APP_USER_ROLE;
GRANT APP_USER_ROLE TO APP_USER;
CREATE USER APP_USER
  IDENTIFIED BY APP_USER_PASS
  DEFAULT TABLESPACE APPL_DATA
  TEMPORARY TABLESPACE TEMP
  PROFILE DEFAULT
  ACCOUNT UNLOCK;
  GRANT APP_USER_ROLE TO APP_USER;
  ALTER USER APP_USER DEFAULT ROLE ALL;
  ALTER USER APP_USER QUOTA UNLIMITED ON APPL_DATA;

  GRANT SELECT,UPDATE,DELETE,INSERT ON MYSCHEMA.MY_TABLE to APP_USER_ROLE;
  GRANT SELECT ON MYSCHEMA.MY_SEQ to APP_USER_ROLE;

InformationsquelleAutor snowmanjack | 2010-11-04

Schreibe einen Kommentar