DBMS practice_240227

Choi Suyeon·2024년 2월 27일
0

계정생성

관리자 계정만 가능.(관리자 권한을 부여받은 계정도 가능)

  1. 계정생성(DBA_USERS : DD에서 생성된 계정을 확인할 수 있다.)
    create user c##계정명 identified by 비번;

-c##이 붙지 않은 계정을 사용.(_ORACLE_SCRIPT 활성화)

  • alter session set "_ORACLE_SCRIPT" = true;(접속할 때마다 사용)
    create user 계정명 identified by 비번;
  1. 생성된 계정에 권한 부여
    권한 조회 : DBA_ROLE_PRIVS, DBA_SYS_PRIVS
    -grant : 권한 부여
    dba : DBA권한
    connect : DB접속 권한
    resource : DB사용 권한
    create view : view 생성권한
    create synonym - synonym 생성권한
grant 권한,,,,to 계정명;

-revoke : 권한 회수

revoke 권한,,,from 계정명;
  1. 테이블 스페이스에 대한 사용권한 부여
    alter user 계정명 default tablespace users quota unlimited on users;

  2. 사용

  3. 계정삭제
    -객체가 없는 계정
    drop user 계정명;

-객체가 있는 계정
drop user 계정명 cascade

백업

-모든 계정은 계정이 가진 객체를 백업할 수 있다.
-exp.exe 사용
-dos에서 사용.
-백업은 정기백업 & 비정기 백업을 수행.

-테이블만 백업
exp userid = 계정명/비번 tables=백업할 테이블명,,,, file = 백업파일의 파일명

-모든객체 백업
exp userid = 계정명/비번 full=y file=백업 파일의 파일명

복원

-imp.exe복원
-백업파일을 사용하여 DBMS에서 사용할 객체를 복원하는 것.
-같은 이름의 객체가 존재하면 복원되지 않는다.

imp -help
-특정 테이블만 복원
imp userid=계정명/비번 tables=복원할 테이블명,,, file=백업파일의 경로

-모든 객체 복원
imp userid=계정명/비번 full=y file=백업파일의 경로
 

synonym(동의어)

테이블 명을 원래의 이름과 함께 다양한 이름으로 사용해야 할 때.
alias와는 다르다.( alias는 해당 select에서만 alias명으로만 사용가능. )
create synonym권한이 부여된 계정만 synonym을 생성할 수 있다.

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

생성
create [public] synonym 시노님명 for 테이블명;

사용
select 컬럼명,,,,from 시노님명;
insert into 시노님명(컬럼명,,,) values(,,,);

삭제
drop synonym 시노님명;

권한부여(관리자)
grant create [public] synonym to 계정명;

권한회수(관리자)
revoke create [public] synonym from 계정명;

View

실제 테이블에서 도출되는 가상의 테이블.
보안성향상, 사용자편의성이 향상.
-자주 사용되는 조건으로 view를 만들고 접근
-조인을 한 상태로 view를 만들고 접근

create view 권한이 있는 사용자만 생성 가능.
단순 view와 복합 view 두 가지로 생성 가능.

  • 단순 view
    -테이블 하나에서 도출된 view
    -함수, 연산식을 사용하지 않고 생성한 view
    -DML 사용 가능

  • 복합 view
    -테이블 여러개에서 도출된 view
    -함수, 연산식을 사용하여 생성한 view
    -DML 사용 불가능.(select 가능. insert 불가능. update, delete 상황에 따라 다름.)

권한부여 - 관리자
grant create view to 계정명;

권한회수 - 관리자
revoke create view from 계정명;

* 생성
create view 뷰명(컬럼명,,,생략가능) as (select 컬럼명,,,,) option;

* 삭제
drop view 뷰명;
-user_views DD에서 view를 확인할 수 있다.

index

레코드의 양이 많을 때 빠른 검색을 하기 위해 제공하는 객체(CPU Cost와 IO Cost가 줄어든다.)
자동 인덱스와 수동인덱스 두가지를 제공.
모든 계정은 인덱스를 생성하고, 사용할 수 있다.
user_indexes DD에서 index를 확인할 수 있다.
인덱스는 시간이 지날 수록 테이블의 레코드와 차이가 생긴다.(rebuild 해야 함.)
모든 레코드는 레코드를 식별하기 위한 주소(rowid)를 가진다.

* 인덱스 생성
create [인덱스 종류] index 인덱스명 on 테이블명( 컬럼명,,, );

* 인덱스 삭제
drop index 인덱스명;

* 인덱스 rebuild
alter index 인덱스명 rebuild;

0개의 댓글