是否可以在 Grails 中使用只读的 JNDI 数据源?
我需要将遗留数据库中的 JNDI 数据源添加到我的 Grails (1.2.2) 应用程序中。 到目前为止,该资源已添加到我的 Tomcat (5.5) 中,并且 DataSource.groovy
包含:
development {
dataSource {
jndiName = "jdbc/lrc_legacy_db"
}
}
我还创建了一些映射不同表的域对象,以便使用 GORM 轻松加载和处理来自 DB 的数据。但我现在想保证,与该数据库的每个连接实际上都是只读的。我最关心的是 dbCreate 属性以及通过 GORM 和 GORM 类进行的自动数据库操作。
跳过 dbCreate 就足够了吗? 如何确保数据库只能被读取而永远不会以任何方式被操纵?
I need to add a JNDI datasource from a legacy database to my Grails (1.2.2) application.
So far, the resource is added to my Tomcat (5.5) and DataSource.groovy
contains:
development {
dataSource {
jndiName = "jdbc/lrc_legacy_db"
}
}
I also created some domain objects mapping the different tables to comfortably load and handle data from the DB with GORM. But I now want to assure, that every connection to this DB is really read-only. My biggest concern here is the dbCreate
- property and the automatic database manipulation through GORM and the GORM classes.
Is it enough to just skip dbCreate?
How do I assure that the database will only be read and never ever manipulated in any way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该使用 验证dbCreate 的选项。
编辑:该文档与我第一次发布此答案时有很大不同,因此该链接并不能完全让您到达解释验证选项的位置。快速查找将带您到达正确的位置。
You should use the validate option for dbCreate.
EDIT: The documentation is quite a bit different than when I first posted this answer so the link doesn't quite get you to where the validate option is explained. A quick find will get you to the right spot.
根据 Grails 文档:
可以通过以下方式配置域类的只读缓存
: 1.启用缓存
将类似以下内容添加到
DataSource .groovy
2. 将缓存设为只读
对于每个域类,您需要将以下内容添加到
mapping
闭包中:According to the Grails documentation:
A read-only cache for a domain class can be configured by
1. Enable Caching
Add something like the following to
DataSource.groovy
2. Make Cache Read-Only
For each domain class, you will need to add the following to the
mapping
closure: