성장 일기/쌍용교육센터 / / 2023. 1. 31. 11:35

0131/계정 권한, 백업 및 복원, view

쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 https://github.com/2jaehoon/ssangyonng.git에 올려두었습니다.

 

* self join

  - 테이블 하나를 조인하는 것

  - 검색 용도와 조건 용도를 식별해서 사용해야 한다.

-- from에 있는 테이블명과 조인할 테이블명이 같아야 한다.
-- from에 있는 테이블명은 검색용도, 조인할 테이블명은 조건용도로 나뉜다.
-- 검색용도는 조인하여 사용자에게 데이터를 보여줄 목적의 테이블이다,
-- 조건용도는 조인조건과 검색조건을 사용할 목적의 테이블이다.
-- 즉, select에서의 테이블명의 alias를 사용하고
-- where 조인조건과 검색 조건에서는 조인할 테이블명의 alias를 사용한다.
select 테이블명 alias.컬럼명
from 테이블명 alias, 조인할 테이블명 alias
where 조인조건 and 검색조건

 

백업

  - 모든 계정은 계정이 생산한 객체 백업을 수행할 수 있다.

    ( table, sequence, index, view, synonym, function, procedure, package ) 

  - exp.exe 툴을 사용한다.

  - dos 창에서 수행

  - 생성된 파일은 안전한 장소에 보관

 

* 백업 도움말

exp -help

* 테이블 백업

exp userid=계정명/비밀번호 tables=테이블명1,테이블명2,... file=백업파일의 경로

* 모든 객체 백업

exp userid=계정명/비밀번호 full=y file=백업파일의 경로

 

복원

  - 모든 계정은 계정이 생산한 객체를 복원할 수 있다.

    ( table, sequence, index, view, synonym, function, procedure, package )

  - imp.exe 툴을 사용한다.

  - dos 창에서 수행

 

* 복원 도움말

imp -help

* 테이블 복원

imp userid=계정명/비밀번호 tables=테이블명1,테이블명2,... file=백업한 파일의 경로

* 모든 객체 복원

imp userid=계정명/비밀번호 full=y file=백업한 파일의 경로

 

계정 생성

  - 관리자, 관리자 권한을 가진 계정이 생성할 수 있다.

  - 생성된 계정은 DB에 접근과 사용을 할 수 없다.

  - Oracle 12c부터는 cloud계정으로 계정명 앞 c##이 붙은 형태의 계정만 생성 가능 ( c##계정명 )

  - c##이 붙지 않은 계정을 생성할 때에는 ORACLE_SCRIPT을 활성화 해야 한다.

  - 계정 검색은 dba_users DD에서 가능

 

* 순서

  1. ORACLE_SCRIPT 활성화( alter )

alter session set "_ORACLE_SCRIPT"=true;

  2. 계정 생성( create )

create user 계정명 identified by 비밀번호;

  3. 권한 부여( 접속, DB 사용 권한 )( grant )( DCL )

-- connect( 접속 권한 ), resource( DB 사용 권한 ), dba( dba 권한 )
grant 권한,...,... to 계정명;

  4. tablespace 사용 권한 변경( alter )

alter user 계정명 default tablespace users quota unlimited on users;

  5. 권한 회수( DCL )

-- alter session set "_ORACLE_SCRIPT"=true;가 안되어 있으면 회수 불가
revoke 권한,... from 계정명;

  6. 계정 삭제( DDL )

-- 객체(table, index, ...)를 생성하지 않은 계정 삭제
drop user 계정명;
-- 객체를 생성한 계정 삭제
drop user 계정명 cascade;

 

synonym( 동의어 )

  - 테이블을 다양한 이름으로 사용해야 할 때( alias를 사용하는 상황과 비슷함 )

  - 기존의 테이블명과 synonym명을 동시에 사용할 수 있다.

  - 권한( create synonym )이 부여된 계정만 만들 수 있다.

  - 부여된 권한은 관리자 계정으로 접속하여 dba_sys_privs DD에서 확인 가능

  -  user_synonyms DD에서 생성된 synonym을 확인할 수 있다.

  - public synonym을 생성하면 다른 계정에서도 사용할 수 있다.

 

* 권한 부여

  - 시노님 생성 권한 부여( 관리자 )

grant [public] create synonym to 계정명;

* 시노님 생성

create synonym 시노님명 for 테이블명;

* 시노님 사용

select 컬럼명, ..., ...
from 시노님명;

* 시노님 삭제

drop synonym 시노님명;

* 시노님 권한 회수

revoke create [public] synonym from 계정명;

 

view

  - 실제 테이블에서 도출되는 가상의 테이블

  - 보안성 향상, 사용자 편의성 향상

  - 권한이 있는 사용자만 view를 생성할 수 있다.

  - view 생성 권한은 dba_sys_privs DD에서 확인

  - 생성된 view는 user_views DD에서 확인

  - 단순 view와 복합 view

      단순 view : 테이블 하나에서 도출된 view

      함수나 연산식을 사용하지 않고 생성된 view

      DML 가능( select, insert, update, delete )

 

      복합 view : 테이블 여러 개에서 도출된 view( union, join )

      함수나 연산식을 사용하여 생성된 view

      DML 일부분 불가능( insert 불가능, ( update, delete 상황에 따라 다름 ) )

 

* view 생성 권한( 관리자 계정 )

grant create view to 계정명;

* view 생성 권한 회수

revoke create view from 계정명;

* view 생성

-- ( 컬럼명, ..., ...) 생략 가능
-- (select문) subquery에서 조회된 결과가 view로 도출, 단순 view인지 복합 view인지 결정
-- option에서 with read only는 읽기 전용
-- option에서 with check option은 view에서 검색될 수 있는 레코드에 대해서 DML 가능
-- or replace는 view가 없으면 생성하고 view가 존재하면 치환
create [or replace] view 뷰명( 컬럼명, ..., ...) as (select문) option;

* view 삭제

drop view 뷰명;

 

 

'성장 일기 > 쌍용교육센터' 카테고리의 다른 글

0202/Statement  (0) 2023.02.02
0201/인덱스, JDBC  (0) 2023.02.01
0130/시퀀스, 조인, 정규화  (0) 2023.01.30
0127/테이블 제약 조건  (0) 2023.01.27
0126/집계함수  (0) 2023.01.26
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유