KH/Oracle

# 19 USER 계정 생성

오늘의 진 2022. 9. 5. 15:06

  사용자   

 

오라클 데이터베이스를 활용하여 새로운 서비스를 구축한다면 테이블을 비롯한 여러 객체가 필요할 것이다. 

지금까지 사용한 scott 계정은 오라클사에서 제공하는 계정으로 보안의 문제가 있다. 

 

따라서 scott 계정 이외에 오라클 데이터베이스에 접속 할 수 있는 새로운 계정이 필요하다. 

이렇게 오라클 데이터 베이스에서는 데이터베이스에 접속하여 데이터를 관리하는 계정을 USER(사용자) 라고 표현한다.

 

 

 


  데이터베이스 관리자   

 

  • 사용자가 데이터베이스의 객체에 대한 특정 권한을 가질 수 있도록 한다.
  • 다수의 사용자가 데이터베이스에 저장된 정보를 궁유하면서도 정보에 대한 보안이 이루어지도록 한다.
  • 데이터베이스에 접근하기 위해서는 사용자가 이름과 암호를 입력해서 로그인이 이루어 지도록한다.
  • 사용자마다 서로 다른 권한을 부여함으로써 보안을 설정한다.

  권한   

 

  • 사용자가 특정한 테이블에 접근 할 수 있도록 하거나 해당테이블에 select,insert, update,delete를 사용할 수 있도록  제한을 두는 것이다. 
  • 데이터베이스 권한은 시스템 권한과 객체 권한으로 나뉜다.
System Privileges (시스템 권한) 사용자의 생성과 제거, 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 사용자 스키마에서 함수를 생성 할 수 있는 권한 

 

 

  • Schema(스키마)

데이터베이스 구조와 제약 조건에 관한 전반적인 명세를 기술한 것

객체의 특성을 나타내는 속성과 속성들의 집합으로 이루어진 객체 

객체사이에 존재하는 관계에 대한 정의와 이를 유지하기 위해 해야할 제약 조건들을 기술한 것 

 


사용자 생성 

- 사용자 생성 및 권한부여는 system 으로 접속하여서 해야한다. 

: 부서나 사원의 직무에 따라 사용하는 테이블을 고려해서 오라클 데이터베이스 관리자는 사용자 계정을 발급한다. 

CREATE USER  사용자명
IDENTIFIED BY  비밀번호

 

 

(예)

System으로 접속해서 사용자 생성 

CREATE USER FIRSTORA
IDENTIFIED BY korea123;

사용자는 생성되었지만  시스템 권한은 주지 않은 상태 

 

 

권한부여 

GRANT 권한
TO 사용자

 

(예) DB 접근 권한 부여 

GRANT create session   // 새로 생성된 firstora에 DB접근 권한 부여
to firstora;

테이블 생성 권한 부여 

grant create table to firstora;

데이터 베이스 ROLL 권한 제어 

 

: ROLL은 사용자에게 보다 간편하게 권한을 부여 할 수 있도록 여러개의 권한을 묶어 놓은 권한의 집합이며 

사용자 또는 다른 툴에 부여한다. 

 

CONNECT 사용자가 데이터베이스에 접속할 수 있도록 가장 기본적인 권한 8가지를 묶어 놓음
ALTER, SESSION, CREATE CLUSTER,
CREATE DATABASE LINK
CREATE SYNONYM, CREATE TABLE
CREATE VIEW
RESOURCE 사용자가 객체를 생성할수 있도록 시스템 권한을 묶어놓음
CREATE CLUSETER, CREATE PROCEDURE
CREATE SEQUENCE, CREATE TABLE
CREATE TRIGGER
DBA 사용자들이 사용한 데이터베이스 객체들을 관리하고 사용자들을 작성하고 변경하고 제거 할 수 있는
모든 권한을 가진다. 
모든 시스템 권한 
GRANT CONNECT,RESOURCE  TO FIRSTORA;

 

ROLL이 부여된 것을 보고싶다면 

select * from user_role_privs;

지금 사용하는 사용자의 권한을 볼 수 있다. 

모든 권한은 system 관리자가 주는것이다. 

 

 

Q ) 사용자명 :  koreaora   비밀번호 : seoul1234

이 사용자에게 connect, resource 권한을 부여하고 이 사용자안에 두개의 테이블을 만들고 각각의 테이블에 레코드를 5개이상 집어넣으시오 .

 

사용자 생성 및 권한부여는 system에서 해야한다 

conn system/oracle11g를 통해서 시스템에 접속

show user : 현재 어떤 계정으로 접속했는지 확인 할 수 있다. 

사용자생성
CREATE USER koreaora
IDENTIFIED BY seoul1234;

권한부여
GRANT CONNECT,RESOURCE  TO koreaora;

테이블 생성
create table emp_test(
empno number(5) primary key,
ename varchar2(20) not null, 
sal number(7,2),
hiredate date default sysdate);

create table dept_test(
deptno number(5) primary key,
dname varchar2(20) not null,
loc varchar2(40));