기본 콘텐츠로 건너뛰기

12월, 2017의 게시물 표시

Oracle 전체 테이블 삭제 및 DB 링크 복제 자동화: PL/SQL 실전 스크립트 정리

Oracle DB 전체 테이블 삭제 및 DB 링크로 테이블·데이터 복사 자동화하기 개발·운영 환경을 초기화하거나, 다른 서버의 스키마를 그대로 복제해야 할 때 “전체 테이블 삭제 → DB 링크를 이용한 테이블/데이터 복사” 작업이 자주 필요합니다. 이 글에서는 Oracle 데이터베이스 기준으로 PL/SQL 루프 + EXECUTE IMMEDIATE 를 활용해 전체 테이블 삭제와 DB 링크를 통한 테이블/데이터 복사를 자동화하는 방법 을 정리합니다. 실무에서 바로 쓸 수 있는 예제 코드와, 꼭 확인해야 할 주의사항까지 함께 담았습니다. 📚 목차 Oracle DB 전체 테이블 삭제 (user_tables 기반) DB 링크로 테이블 구조만 복사하기 DB 링크로 테이블 데이터까지 복사하기 실무에서 자주 하는 튜닝·주의사항 1. Oracle DB 전체 테이블 삭제 (user_tables 기반) 개발 환경을 초기화하거나, 테스트용 스키마를 리셋할 때 user_tables 기준으로 현재 스키마의 모든 테이블을 DROP 하는 패턴입니다. 아래 예제는 PL/SQL 블록 + 커서 루프 로 구현한 기본 형태입니다. BEGIN FOR c IN (SELECT table_name FROM user_tables) LOOP EXECUTE IMMEDIATE 'DROP TABLE ' || c.table_name || ' CASCADE CONSTRAINTS'; END LOOP; END; / 1-1. 코드 설명 user_tables : 현재 접속한 유저가 소유한 테...

[Spring Security] SecurityContext로 강제 로그인 처리하기 (SSO·백오피스 연동 팁)

[Spring Security] SecurityContext로 강제로 로그인 처리하기 (SSO·백오피스 연동) [Spring Security] SecurityContext로 강제로 로그인 처리하기 (SSO·백오피스 연동) 내부 시스템이나 SSO 연동 , 또는 이미 별도 인증 과정을 거친 뒤 Spring Security 세션만 강제로 만들어야 하는 상황 이 종종 있습니다. 이 글에서는 SecurityContext 와 UsernamePasswordAuthenticationToken 을 사용해 프로그램적으로 로그인(강제 로그인) 처리 하는 방법을 예제와 함께 정리합니다. 1. 왜 강제 로그인(프로그램 로그인)이 필요할까? 대표적인 사용 시나리오는 다음과 같습니다. 사내 SSO 서버에서 이미 인증을 완료했고, 결과로 내려온 ID로만 Spring Security 컨텍스트를 세팅 하고 싶을 때 별도 로그인 페이지 없이, 백오피스·관리자 화면에서 바로 내부 계정으로 진입 시켜야 할 때 테스트·운영 도구 등에서 특정 계정으로 자동 로그인 이 필요할 때 ⚠️ 단, 이런 강제 로그인은 보안적으로 매우 주의 해야 합니다. 외부에서 이 로직에 접근할 수 없도록 IP 제한, 별도 권한 체크, 토큰 검증 등을 반드시 거쳐야 합니다. 2. 기존 강제 로그인 코드 이해하기 질문에서 주신 예제 코드를 조금 다듬어서 먼저 살펴보겠습니다. 2-1. 예제 코드 SecurityContext securityContext = SecurityContextHolder.getContext(); UsernamePasswordAuthenticationToken result = null; List<Gra...