본문 바로가기

DB/ORACLE

220905_ORACLE_국비_사용자(USER)

사용자

  • 데이터베이스에 접속해 데이터를 관리하는 계정을 user(사용자)라고 표현
  • 데이터베이스 관리자
    - 사용자가 데이터베이스의 객체에 대한 특정 권한을 가질 수 있도록 함
    - 다수의 사용자가 데이터베이스에 저장된 정보를 공유, 보안이 이루어질 수 있도록 함
    - 접근하기 위해 사용자의 이름, 암호를 입력해 로그인이 이루어질 수 있도록 함
    - 사용자 마다 서로 다른 권한을 부여함으로써 보안을 설정함
  • Schema(스키마) : 데이터베이스 구조와 제약조건에 관한 전반적인 명세를 기술한것
                                  객체의 특성을 나타내는 속성과 속성들의 집합으로 이루어진 객체사이에 존재하는
                                  관계에 대한 정의와 이를 유지하기 위해 해야할 제약조건들을 기술한 것
  • 권한
    - 사용자가 특정한 테이블에 접근 할 수 있도록 하거나
      해당 테이블에 select, insert, update, delete를 사용할 수 있도록 제한을 두는것
    - 종류
종류 의미
System Privilleges 사용자의 생성, 제거, DB 접근 및 각종 객체를 생성할 수 있는 권한
주료 DBA에 의해 부여
Object Privileges 객체를 조작 할 수 있는 권한

 

  • 데이터베이스 관리자가 가지고 있는 시스템 권한
create user 새롭게 사용자를 생성하는 권한
drop user 사용자를 삭제하는 권한
drop any table 임의의 테이블을 삭제할 수 있는 권한
query rewrite 함수 기반 인덱스를 생성하는 권한
back up any table 임의의 테이블을 백업 할 수 있는 권한

 

  • 데이터베이스를 관리하는 권한으로 시스템 관리자가 사용자에게 부여하는 권한
create session 데이터베이스에 접속 할 수 있는 권한
create table 사용자 스키마에서 테이블을 생성할 수 있는 권한
create view 사용자 스키마에서 뷰를 생성할 수 있는 권한
create sequence 사용자 스키마에서 시퀀스를 생성할 수 있는 권한
create procedure 사용자의 스키마에서 함수를 생성할 수 있는 권한

 

  • 사용자 생성
    - 사용하는 테이블을 고려해 관리자는 사용자 계정을 발급
    - 형식 :   create user 사용자명
                  identified by 비밀번호
  • 권한 부여
    - 형식 : grant 권한
                to 사용자

 

<사용자 생성 및 권한부여>

사용자 확인)

 

관리자 계정으로 연결)

사용자계정으로는 생성하지 못함

새로운 사용자 생성)

 

새로운 사용자 계정 연결)

계정은 생성했지만 권한이 부여되지 않아 오류가 뜸

 

관리자 계정으로 연결)

시스템계정으로만 권한부여가 가능하기 때문에 계정변경

 

권한 부여)

firstora계정에 데이터베이스 접속 권한 부여

 

사용자 계정 연결 및 확인)

 

새로운 계정으로 테이블 생성)

테이블생성 권한이 없기때문에 오류가 뜸

 

테이블 생성 권한 부여)

관리자 계정으로 변경 후 권한 부여

 

테이블 생성)

사용자 계정으로 다시 변경 후 테이블 생성

 

테이블 확인)

 

 

  • Role 권한제어
    - 여러개의 권한을 묶어 놓은 권한의 집합이며 사용자가 또 다른 Role에서 부여
    - 사용자를 생성했으면 그 사용자에게 각종 권한을 부여해야 생성된 사용자가 데이터베이스를 사용 할 수 있음
    - 방법
connet 사용자가 데이터베이스에 접속 할 수 있도록
가장 기본적인 시스템 권한 8가지
alter session, create cluster,
create database, link,
create synonym, create table, create view
resource 사용자가 객체를 생성할 수 있도록 시스템 권한을 묶어놓음
create cluster, create procedure,
create sequence, create table, crate trigger
dba 사용자들이 소유한 데이터 베이스 객체들을 공유하고
사용자들을 작성, 변경, 제거할 수 있는 모든 권한을 가짐
모든 시스템 권한

 

 

<Role권한>

현재 계정 확인 및 계정변경)

 

사용자 생성 )

 

권한 부여 및 계정연결)

 

테이블 생성 및 확인)

 

role확인)

 


<예제>

< 다음 조건에 맞는 사용자를 생성 후 권한을 부여하고 각각 테이블에 레코드 5개이상 삽입할 것
    사용자명 : korea_ora    비밀번호 : seoul1234
    조건 : connect, resource권한 부여, 2개 테이블 생성
             테이블 1 - emp_test (empno number(5) primary key, ename varchar2(20) not null, sal number(7,3),
                                               hiredate date dufault sysdate)

            테이블2 - dept_test(deptno number(5) primary key, dname varchar2(20) not null, loc varchar2(40))
>

 

테이블 확인)