Spring

데이터베이스 구조 변경을 위해 스프링 부트 권한을 제거하는 방법

기록만이살길 2021. 3. 14. 03:03
반응형

데이터베이스 구조 변경을 위해 스프링 부트 권한을 제거하는 방법

1. 질문(문제점):

Spring Boot 애플리케이션은 테이블, 테이블 열, 기본 키 생성 및 삭제와 같은 데이터베이스의 구조적 변경을 수행 할 수 있습니다.

이를 위해 응용 프로그램 권한을 제거하는 방법이 있습니까?

응용 프로그램이 선택, 삽입, 업데이트 및 삭제의 일반적인 작업 만 수행하도록 허용 하시겠습니까?

테이블 생성 및 삭제와 같은 db의 구조적 변경은 데이터베이스에서 직접 수행해야합니다.

어쨌든 그렇게 할 수 있습니까?

2. 해결방안:

Spring은 Hibernate가 DDL 생성을 위해 사용하는 JPA 특정 속성을 제공합니다 : spring.jpa.hibernate.ddl-auto.

표준 Hibernate 속성 값은 다음과 같습니다 : create, update, create-drop, validate 및 none

create – Hibernate는 먼저 기존 테이블을 삭제 한 다음 새 테이블을 생성합니다.

update– 매핑 (어노테이션 또는 XML)을 기반으로 생성 된 객체 모델을 기존 스키마와 비교 한 다음 Hibernate는 diff에 따라 스키마를 업데이트합니다. 응용 프로그램에서 더 이상 필요하지 않더라도 기존 테이블 또는 열을 삭제하지 않습니다.

create-drop– create와 비슷하지만 모든 작업이 완료된 후 Hibernate가 데이터베이스를 삭제한다는 추가 기능이 있습니다. 일반적으로 단위 테스트에 사용

validate – Hibernate는 테이블과 열이 존재하는지 여부 만 확인합니다. 그렇지 않으면 예외가 발생합니다.

none –이 값은 DDL 생성을 효과적으로 끕니다.

귀하의 경우에는 스프링 부트가 DB 스키마를 자동으로 업데이트하지 않도록 파일 에서 속성 spring.jpa.hibernate.ddl-auto로 변경 해야합니다.noneapplication.properties

도움이 되었기를 바랍니다 . 자세한 정보는 https://docs.spring.io/spring-boot/docs/1.1.0.M1/reference/html/howto-database-initialization.html

65709829
반응형