Spring引导应用程序能够对数据库进行结构更改,如创建和删除表、表列、主键等。
有没有办法删除应用程序权限?
希望应用程序只允许执行选择、插入、更新和删除的常规操作。
数据库上的任何结构更改(如创建和删除表(都只能直接在数据库中进行。
有什么可以做的吗?
Spring提供了一个特定于JPA的属性,Hibernate使用该属性生成DDL:spring.jpa.hibernate.ddl-auto
。
标准的Hibernate属性值为:create,update,create drop,validate and none
create
–Hibernate首先删除现有表,然后创建新表
update
–将基于映射(注释或XML(创建的对象模型与现有架构进行比较,然后Hibernate根据差异更新架构。它从不删除现有的表或列,即使应用程序不再需要它们
create-drop
–类似于create,只是Hibernate将在所有操作完成后删除数据库。通常用于单元测试
validate
–Hibernate只验证表和列是否存在,否则会抛出异常
none
–此值有效地关闭DDL生成
在您的情况下,您必须将application.properties
文件中的属性spring.jpa.hibernate.ddl-auto
更改为none
,以阻止spring-boot自动更新DB模式。
希望这能有所帮助。了解更多信息https://docs.spring.io/spring-boot/docs/1.1.0.M1/reference/html/howto-database-initialization.html
尝试在application.properties 中添加此项
spring.jpa.hibernate.ddl-auto = none
希望有用
首先,如果使用Hibernate,则将spring.jpa.hibernate.ddl-auto
属性设置为none
其次,如果你的应用程序不能在你的数据库上执行DDL命令,那么就直接撤销应用程序用户对数据库的权限。