일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 컴퓨터비전
- 자바
- 중학1-1
- JDBC
- 연습문제
- JSP
- 딥러닝
- JSP/Servlet
- 자바 실습
- 자바스크립트
- 정보처리기사실기
- 디버깅
- 머신러닝
- html/css
- 자바스크립트심화
- 순환신경망
- 혼공머신
- 데이터베이스
- rnn
- 상속
- 개발일기
- c언어
- SQL
- 컴퓨터구조
- 데이터분석
- CSS
- 중학수학
- 파이썬
- ChatGPT
- 정보처리기사필기
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
[쇼핑몰 홈페이지 제작] 상품과 회원 관리 2 - 데이터베이스 구축 2 : 사용자 계정 생성 및 데이터베이스 수축 본문
[쇼핑몰 홈페이지 제작] 상품과 회원 관리 2 - 데이터베이스 구축 2 : 사용자 계정 생성 및 데이터베이스 수축
huenuri 2024. 12. 21. 20:43데이터베이스를 구축하는 실습을 진행하기로 하자. 명령 프롬프트에서 실행하는 작업인데 많이 어렵기도 하고 코드 오류가 많이 떠서 힘든 작업이었다.
데이터 베이스 구축하기 이어서
[직접 해보기] Nonage Shop 데이터베이스 구축을 위한 사용자 계정 생성하기
1. 시스템 계정으로 로그인하기
명령 프롬프트 창을 띄운다. 그런 후에 DBA (Database Administrator)인 시스템 계정으로 로그인한다.
하지만 무슨 오류 메시지가 떴다. SP2-0734 에러는 명령어가 SQLPlus 내부에서 실행될 수 없는 경우 발생하는 에러이다. sqlplus / as sysdba는 운영 체제에서 실행해야 한다. SQLPlus가 이미 실행 중이라면, SQL 프롬프트 (SQL>) 안에서 사용할 수 없다.
책에서는 운영체제로 실행한 것 같다. SQL*Plus가 이미 실행된 상태에서는 CONNECT 명령을 사용해서 권한을 변경할 수도 있다.
CONNECT / AS SYSDBA;
2. 권한 변경에 대해 알아보기
CONNECT / AS SYSDBA;를 사용하면 SYSDBA 권한으로 데이터베이스에 연결된다. 이 권한은 Oracle 데이터베이스의 최고 관리자 권한으로, 일반적인 DBA보다 더 강력한 작업을 수행할 수 있다.
SYSDBA 권한의 특징
- 전체 데이터베이스 관리 가능
- 데이터베이스 시작 및 종료 (STARTUP, SHUTDOWN)
- 복구 및 백업 작업 (RMAN, RECOVERY 관련)
- 시스템 사용자 계정 관리
- 데이터 파일, 테이블스페이스 관리
- SYS 사용자로 동작
- SYSDBA 권한으로 로그인하면, 내부적으로 SYS 사용자로 연결돼. 따라서 SYS 스키마에서 작업을 수행하게 된다.
- 운영 체제 인증 기반
- sqlplus / as sysdba 또는 CONNECT / AS SYSDBA;는 데이터베이스의 계정 비밀번호를 묻지 않는다. 대신 운영 체제의 인증을 기반으로 동작한다. 이건 데이터베이스 관리자만 사용할 수 있게 보안을 강화한 것이다.
주의할 점
- SYSDBA 권한은 시스템 전반에 영향을 미칠 수 있는 강력한 권한이다. 일반 작업에서는 사용하지 않고 꼭 필요한 경우에만 사용해야 한다.
- 일반 사용자 계정으로 작업할 때는 CONNECT 사용자명/비밀번호로 접속해서 작업하고, 관리자 권한이 필요할 때만 SYSDBA로 전환하는 게 좋다.
3. 시스템 계정으로 다시 로그인하기
명령 프롬프트로 이 명령어를 넣어 접속했다.
4. 새로운 사용자 계정 생성하기
오라클을 설치할 경우 제공되는 DBA(데이터베이스 administrator) 계정과는 달리 JDBC에서 사용할 테이블을 생성해 놓을 사용자 계정을 생성한다. 사용자 이름은 오라클에 접속할 때 사용할 계정이고, 접속을 성공리에 하려면 사용자 생성할 때 지정한 암호를 입력해야 한다.
CREATE USER 사용자이름 IDENTIFIED BY 비밀번호;
5. 사용자 계정에 권한 부여하기
생성된 사용자 계정에 권한을 부여한다. 권한은 데이터베이스 생성 및 테이블 생성과 같은 기능을 사용하기 위한 것이다.
GRANT CONNECT, RESOURCE TO 사용자이름;
GRANT CREATE VIEW TO nonage;
두 번째 명령어는 특정 사용자(nonage)에게 뷰를 생성할 수 있는 권한을 부여하는 명령이다.
[직접 해보기] Nonage Shop 시스템을 위한 데이터베이스 구축하기
1. backup.dmp 파일을 C:₩ 아래 복사하기
소스 파일에 보면 저자가 만들어놓은 데이터베이스 백업 파일이 있다. 이걸 C 드라이버에 복사한다. 그냥 복사하면 관리하기 어려우므로 파일을 생성하여 하위 폴더에 보관하는 것이 좋다. 책 저자는 그냥 C 드라이버 안에 했다.
여기에 복사해 놓았다.
2. 덤프 파일을 임포트하여 데이터베이스 구축하기
내가 지정한 경로를 써서 다음과 같이 명령어를 작성한다.
imp system/1234 fromuser=nonage touser=nonage file=c:/oraclexe/JSP/backup.dmp
이렇게 썼는데 오류가 떴다. SP2-0734 오류는 SQL*Plus 내부에서 실행할 수 없는 명령어를 입력했을 때 발생한다. imp 명령은 SQL*Plus가 아니라 운영 체제의 명령 프롬프트(CMD)나 터미널에서 실행해야 한다.
해결 방법
SQL*Plus에서 나가기 : SQL*Plus 프롬프트를 종료하려면 아래 명령을 입력
exit;
3. 데이터베이스 다시 구축하기
나가서 명령어를 썼는데 이번에도 오류가 났다. 오류 메시지 "ORA-01017: invalid username/password; logon denied"는 입력한 계정 정보(사용자 이름 또는 비밀번호)가 잘못되었을 때 발생하는 것이다. 책이 있는 코드 그대로 쓰니까 무슨 말인지 몰랐는데(설명이 없어서) 이게 내 아이디와 비밀번호라는 걸 알게 되었다.
Oracle 설치 중에 설정했던 system 계정의 비밀번호가 맞는지 확인해야 한다.
비밀번호를 맞게 다시 명령어를 입력했더니 임포트는 잘 되었으나 몇 가지 문제가 있었다. 즉 데이터 복구가 완전히 이루어진 것은 아니다.
주요 메시지 분석
1. IMP-00058: ORACLE error 28002 encountered
- 이 메시지는 현재 사용 중인 system 계정의 비밀번호가 7일 안에 만료될 예정이라는 경고이다.
- 이는 데이터 복구에 직접적인 영향을 주지는 않지만, 향후 계정 잠금을 방지하려면 비밀번호를 갱신하는 것이 좋다.
ALTER USER system IDENTIFIED BY 새로운비밀번호;
2. IMP-00003: ORACLE error 1435 encountered
- 이 메시지는 내부적으로 오류가 발생했음을 의미하며, 실제로 데이터가 제대로 복구되지 않았음을 나타냄
3. ORA-01435: user does not exist
- 이 메시지는 NONAGE라는 사용자가 데이터베이스에 존재하지 않아서 복구할 수 없다는 뜻이다.
- NONAGE 사용자를 먼저 생성한 다음 다시 복구를 시도해야 한다.
fromuser와 touser의 의미
- fromuser=nonage
- 이 옵션은 백업 파일(여기서는 backup.dmp)이 생성될 때 사용된 사용자 계정을 의미한다.
- 즉, 데이터를 백업했던 원래의 사용자 계정이 nonage라면 그대로 유지해야 한다.
- 만약 원래 백업 파일이 다른 사용자 계정에서 생성된 거라면 그 사용자 이름을 넣어야 한다.
- touser=nonage
- 이 옵션은 백업 데이터를 복원할 대상 사용자 계정을 의미한다.
- 방금 생성한 계정 이름을 여기 넣으면 된다.
4. 코드 다시 수정하기
비밀번호를 다시 써서 코드를 수정했다.
이러한 메시지가 뜨면 복구가 잘 된 것이다. 이제 7일 후 만료가 된다는 비밀번호를 변경해 보겠다.
5. 비밀번호 변경하기
비밀번호가 잘 변경되었다.
학습을 마치고
데이터베이스를 구축하는 작업은 정말 힘들었다. 1시간 반은 걸린 것 같다. 그래도 첫 단추를 떼었으니 그다음부터는 충분히 잘할 수 있을 거라 생각한다.
이제 본격적으로 홈페이지 제작 실습을 진행할 수 있을 것 같다.
'웹 · 앱 개발 > JSP & Servlet' 카테고리의 다른 글
[쇼핑몰 홈페이지 제작] 상품과 회원 관리 4 - 메인 페이지 만들기 2 : 상품 정보를 저장하는 ProductVO, DBManager, ProductDAO 클래스 만들기 (1) | 2024.12.21 |
---|---|
[쇼핑몰 홈페이지 제작] 상품과 회원 관리 3 - 메인 페이지 만들기 1 : JSP 파일 만들고 첫 화면 띄우기 (0) | 2024.12.21 |
[쇼핑몰 홈페이지 제작] 상품과 회원 관리 1 - 온라인 쇼핑몰 애플리케이션 구성과 데이터베이스 구축 (0) | 2024.12.21 |
파일 업로드 13 - 도전 문제 풀기 3 : 코드 최종 수정 및 실행하기 (4) | 2024.12.17 |
파일 업로드 12 - 도전 문제 풀기 2 : 서블릿 파일 작성하기 (0) | 2024.12.17 |