지난 수업시간에 이어서 사용자 계정에 대하여 추가로 공부했다.
지난 수업 시간 관련 유저생성 등은 위 링크에서 확인이 가능하다.
누적하여 계속 작성하겠다.
[사용자 계정]
DBMS는 업무별로 여러 유저들이 존재하며, 각 계정별로 권한이 분리되어 있다.
각 계정 소유의 여러 객체(스키마)들이 존재할 수 있다.
(계정 소유의 여러 객체: 스키마, SCOTT 스키마 라고 하면 SCOTT이 가진 모든 것을 의미함)
1. 유저 생성
먼저 테이블스페이스란(TABLE SPACE) 객체를 저장하는 논리적인 분류이다.
DBMS 내부에 디스크가 있는데 블럭으로 구성되어있다. 블럭을 묶어 익스텐트라고 하며 익스텐트가 묶여 테이블을 구성한다. 테이블의 집합체가 TABLE SPACE이다.
테이블은 하나의 스페이스에 들어가야 하며, 우리가 테이블 스페이스를 지정하지 않는다면 테이블 소유자의 DEFAULT 테이블 스페이스로 자동 저장된다. USERS라는 스페이스가 기본으로 지정되는 DEFAULT 스페이스이다.
쉽게 생각하면 우리가 파일을 폴더에 묶어두듯이 테이블이 저장되는 공간이라고 생각하면 된다.
이렇게 확인하면 TABLESPACE_NAME에 전부 USERS라고 지정되어있는 것을 볼 수 있다.
그 다음 TEMPORARY TABLESPACE란, 유저가 정렬을 하는데에 있어서(SORT, ORDER BY, JOIN, DISTICNT, UNION, RANK 등을 할 때 자동 수행) 메모리에 PGA라는 영역을 할당하여 정렬을 시도한다. 그런데 이 공간이 그렇게 크지는 않다. 그래서 이 공간을 초과하게 되면 디스크로 내려가 TEMP TPS라는 공간에서 추가적으로 정렬한다. 그러나 디스크보다는 메모리에서 정렬하는 속도가 빠르다. 그래서 PGA 메모리 튜닝이라는 것도 있다. 어쨌든 본인의 정렬을 하기 위해 TEMPORARY TABLESPACE를 지정하게 되는데 보통 업무별로 다르게 분리한다. 하나의 TEMPORARY TABLESPACE로 하면 부하가 심하기 때문이다. 그냥 정렬을 위한 공간이라고 이해하면 되겠다.
QUOTA는 DEFAULT TABLESPACE의 할당량이다. 왜냐하면 DEFAULT TABLESPACE를 할당량을 지정하지 않으면 혼자 다 차지하기 때문이다. 그래서 유저별로 지정하게 된다. TABLESPACE가 지정될 때 이 할당량을 지정할 수 있다.
PROFILE은 유저정책이다.
정리하면 아래와 같다.
TABLESPACE: 객체를 저장하는 논리적인 분류 공간(예. 폴더)
DEFAULT TABLESPACE: 유저별로 지정되는 기본 공간(생략시 USERS)
TEM TABLESPACE(TEMPORARY TABLESPACE): 정렬을 위한 디스크 공간으로 업무별로 보통 분리함.(생략시 TEMP)
QUOTA: TABLESPACE의 저장 공간 중 사용을 할 수 있는 최대 할당량(UNLIMITED로도 선언이 가능함)(생략시 0)
PROFILE: 계정 정책 (로그인정책, 자원정책)(생략시DEFAULT라는 이름의 PROFILE)
저장 공간이 만들어질때에는 테이블 스페이스 안에 만들어진다. 기존 테이블 스페이스를 늘릴 수도 있다. 이 부분은 폴더랑은 다른 점이며, 우리가 폴더에 파일을 저장할 때 파일이 많이 들어가는 경우 용량을 늘려주진 않기 때문이다. 폴더는 그냥 묶음의 형태이다.
2. 유저 변경
1) 락 해제
HR계정에 락을 위와같이 해제하였다.
프로파일에는 유저별 로그온 정책이 있는데 로그인 실패 횟수 10회가 되어있을 때, 10회를 초과하는 순간 락이 걸린다. 이 때 해제하는 방법이다. 패스워드는 유효기간이 있는데 유효기간이 지나면 EXPIRED LOCK이 걸린다.
2) 패스워드 변경
HR 계정의 패스워드를 변경하였다.
패스워드에 특수기호가 포함되어 있으면 앞뒤에 쌍따옴표를 넣는다. 아예 처음부터 "oracle"처럼 습관적으로 쌍따옴표를 넣는 게 좋을 것 같다. ALIAS의 대소구분을 하고 싶거나 특문을 쓰고 싶을 때 쌍따옴표를 붙이는 개념과 같다.
3) QUOTA 변경
HR계정의 QUOTA를 UNLIMITED로 설정하였다.
4) PROFILE 변경
HR 계정의 PROFILE을 DEFAULT로 설정하였다.
3. 삭제
계정 삭제하는 방법은 아래와 같다.
유저 소유의 객체가 존재하는 경우에는 옵션 없이 삭제가 되지 않는다. 한번에 객체까지 삭제하려면 CASCADE 옵션이 필수이다. (시험문제에 나옴).
4. 조회
위와 같이 조회하면 유저별 계정 상태와 락 날짜, 계정 유효기간 등을 알 수 있다. 따라서 아래 정도로 파악하고 있으면 될 듯 하다.
각 테이블과 테이블 스페이스를 확인하려면 아래와 같이 조회하면 된다.
'배우기 > 복습노트[oracle sql]' 카테고리의 다른 글
[복습] SQL | Oracle GROUP BY 의 함수 종류(GROUPING SETS, ROLLUP, CUBE) (0) | 2023.11.17 |
---|---|
[복습] SQL | Oracle 사용자 정책 만들기 PROFILE (0) | 2023.11.17 |
[복습] SQL | Oracle 뷰(VIEW) 정리하기 (0) | 2023.11.17 |
[복습] SQL | Oracle 계정 생성하기(USER) + 복습후기(20231116) (0) | 2023.11.16 |
[복습] SQL | Oracle 권한에 대하여(GRANT, REVOKE) (0) | 2023.11.16 |