hibernate - 使用Oracle 11g hibernate (严重)-权限不足

标签 hibernate grails oracle11g

我正在使用Grails 1.3.4,后者使用了Hibernate,并且针对Oracle 11g数据库。我的应用程序启动失败,出现以下错误:

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)

当我在Oracle中将以下内容添加到数据库用户角色时,它可以工作。但是,我的DBA在生产中表示,他不会授予ANALYZE ALL,因为在11G中不再需要它,并且这弄乱了他的统计信息。分辨率是多少?
GRANT ANALYZE ANY to APP_USER_ROLE;

以下是更多设置信息:

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域对象使用表:
static mapping = {
    table 'MY_TABLE'
    id generator:'sequence',params:[sequence:'MY_SEQ']
}

Oracle用户和角色设置:
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;

最佳答案

Grails可能需要该权限才能确定是否对未反射(reflect)在架构中的域对象进行了更改。

您是否需要grails自动更新生产模式?如果不是,请尝试删除生产环境的dbCreate = "update"

关于hibernate - 使用Oracle 11g hibernate (严重)-权限不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4099416/

相关文章:

data-binding - Grails 数据绑定(bind)问题

unit-testing - 使用 IVY 解析器进行 Grails 2.3 单元测试

grails - 在列表中查找数据(过滤器)

Oracle请求utl_http包时出现错误 "ORA-28759: failure to open file"

sql - 具有日期窗口保存时间的 MAX 解析函数

java - org.hibernate.MappingException : Unknown entity: annotations. 用户

java - 在 Hibernate 中关闭 session 连接

java - 在同一 session 中将多个具有相同标识符的对象保存到数据库中?

java - 使用 Java、Oracle JDBC 处理 Oracle 密码过期和宽限期

hibernate - JPA 2.0/Hibernate - 为什么 hibernate 在删除之前发出选择计数 (*) 查询