
CREATE SEQUENCE 시퀀스명
[ START WITH n]
[ INCREMENT BY n]
[ MAXVALUE n | NOMAXVALUE ]
[ MINVALUE n | NOMINVALUE ]
[ CYCLE | NOCYCLE ]
[ CACHE n | NOCACHE ]
START WITH n
INCREMENT BY n
MAXVALUE n
MINVALUE n
CYCLE 옵션
CACHE 옵션
CURRVAL
NEXTVAL (중요)
(중요) create sequence 시퀀스이름. NEXTVAL
SELECT dept_deptno_seq.NEXTVAL, dept_deptno_seq.CURRVAL
FROM dual;
USER_SEQUENCES 데이터 사전 에 등록됨
ALTER SEQUENCE 시퀀스명
[ INCREMENT BY n]
[ MAXVALUE n | NOMAXVALUE ]
[ MINVALUE n | NOMINVALUE ]
[ CYCLE | NOCYCLE ]
[ CACHE n | NOCACHE ]
INSERT문 사용시 같이 사용하는 형태로 쓰인다.
INSERT INTO DEPT06 (DEPTNO, DNAME, LOC)
VALUES (DEPT_DEPTNO_SEQ. NEXTVAL, '개발', '서울');
DROP SEQUENCE 시퀀스명;
동의어는 db 객체에 대한 별칭을 뜻한다.
다른객체에 접근할 때 스키마.객체 형식으로 접근한다. 이 스키마.객체 형식을 별칭으로 대체하는 것을 시노님이라고한다.
CREATE [PUBLIC] SYNONYM 동의어
FOR 스키마.객체;
-- sys 계정
-- tester 계정 생성 및 권한부여
create user tester identified by tester;
alter user tester identified by tester;
grant connect, resource to tester;
oracle sql developer에서 접속정보 삭제는 db의 사용자 계정을 삭제하지는 않는다.
sys -> 다른 사용자 계정에서 삭제하면 계정이 삭제된다.
tester 계정에서 scott의 컬럼에 접근하는게 안된다.
select * from scott.emp; <-- 오류
-- scott 계정에서 (접근할 컬럼이 있는 계정에서)
GRANT
select on dept
to tester;
select 권한만 부여한 것. insert시 insufficient privileges 오류메세지 발생 (권한부족)
-- SYS
GRANT create synonym
TO tester;
(oracle dba 자격시험 에 필요 따로 책이 있을 정도임)
개념만
다수의 사용자들이 데이터베이스에 저장된 데이터를 공유해서 사용한다.
따라서 보안을 위해서 오라클 db는 인증과 권한을 사용하여 개별 사용자들의 db 접근 및 사용에 적절한 보안을 유지시킨다.
인증 : 사용자 계정을 생성, 암호를 변경, 디스크 공간 할당 등 시스템 수준에서 db 접근 및 사용을 관리하는 것을 의미한다.
권한 : db 객체에 대한 사용자들의 접근 및 사용을 관리하는 개념
계정: 사용자 (sys가 추가) => 권한부여 (sys가 부여 grant, 회수도 가능 revoke )
CREATE USER 계정
IDENTIFIED BY 비밀번호;
ex) cott => tester 권한부여
grant select on dept to tester
grant insert ...
grant update ...
grant delete ...
user_grant 롤생성 <= grant select on dept to tester
grant insert ...
grant update ...
grant delete ...
grant user_rant to tester;
grant user_rant to tester2;
DBA가 권한을 부여 (SYS)
DB에 특별한 작업을 수행하는 것을 가능하게 해준다.
접속, 사용자생성, 테이블생성, 뷰생성 등
CREATE USER 새롭게 사용자를 생성하는 시스템 권한
DROP USER 사용자를 삭제하는 시스템 권한
DROP ANY TABLE 임의의 테이블을 삭제할 수 있는 시스템 권한
QUERY REWRITE 함수 기반 인덱스를 생성하는 시스템 권한
BACKUP ANY TABLE 임의의 테이블을 백업할 수 있는 시스템 권한
객체 수준에서의 권한
객체의 소유자가 권한을 부여 (객체란 테이블과 같은 것들)
select,insert,update,delete 같은 작업을 수행하는 것을 가능하게 해준다.
CREATE SESSION 데이터베이스에 접속할 수 있는 시스템 권한
CREATE TABLE 사용자가 테이블을 생성할 수 있는 시스템 권한
CREATE SEQUENCE 사용자가 시퀀스를 생성할 수 있는 시스템 권한
CREATE VIEW 사용자가 뷰를 생성할 수 있는 시스템 권한
CREATE PROCEDURE 사용자가 PL/SQL의 프로시저를 생성할 수 있는 시스템 권한
권한 할당 문법
GRANT 시스템권한[,시스템권한]
TO 사용자계정|role|PUBLIC;
권한 회수 문법
REVOKE 시스템권한[,시스템권한]
FROM 사용자계정|role|PUBLIC;
< 계정 생성 및 테이블 생성 >
1. user01 계정 생성 + 디벨로퍼에서 접속정보 저장
2. sys에서 user01에 접속권한 부여
3. sys에서 user01에 테이블 생성 권한 부여
4. sys에서 user01에 테이블저장공간을 사용할 권한을 부여
create user user01 identified by user01;
grant create session to user01;
grant create table to user01;
grant unlimited tablespace to user01;
ALTER 테이블,시퀀스 객체를 수정할 수 있는 객체 권한
DELETE 테이블,뷰 객체에서 데이터를 삭제할 수 있는 객체 권한
INSERT 테이블,뷰 객체에서 데이터를 삽입할 수 있는 객체 권한
UPDATE 테이블,뷰 객체에서 데이터를 수정할 수 있는 객체 권한
SELECT 테이블,뷰,시퀀스 객체에서 데이터를 조회할 수 있는 객체 권한
REFERENCES 테이블의 참조 제약조건을 설정할 수 있는 객체 권한
EXECUTE PL/SQL의 프로시저를 실행할 수 있는 객체 권한
GRANT 객체권한[(컬럼)]
ON 객체명
TO 사용자계정|role|PUBLIC
[WITH GRANT OPTION];
with admin option
WITH GRANT OPTION 과 객체 권한
권한 관련 데이터 사전
USER_TAB_PRIVS_MADE는 현재 사용자가 다른 사용자에게 부여한 권한 정보를 알고자 할 때 사용된다.
USER_TAB_PRIVS_RECD 만일 자신에게 부여된 사용자 권한을 알고 싶을 때 사용
REVOE 객체권한, ...]
ON 객체명
FROM 사용자계정|role|PUBLIC
[CASCADE CONSTRAINTS];
롤(role)은 사용자에게 보다 효율적으로 권한을 부여할 수 있도록 여러 개의 권한을 묶어 놓은 것이라고 생각하면 된다.
사전 정의된 롤 종류
CONNECT : CREATE SESSION
RESOURCE :
CREATE TABLE,TABLESPACE, CREATE PROCEDURE,
CREATE SEQUENCE,CREATE TRIGGER,CREATE TYPE,
CREATE CLUSTER, CREATE INDEXTYPE,
CREATE OPERATOR
DBA : 대부분의 시스템 권한과 일부 롤을 포함하며 일반 사용자에게 롤을
부여해서는 안된다.
SELECT role
FROM dba_roles
create user user03 identified by user03;
create role clerk;
grant create session, create table, unlimited tablespace to clerk;
grant select on scott.dept to clerk;
grant clerk to user03;
롤을 부여하고, 그 후에 롤에 다른 권한을 추가한다면
그 롤을 부여받은 사용자는 나중에 롤에 추가된 권한도 유동적으로 부여받는다.
프로그램
IDE : 개발환경 - 개발프로그램(EX.한글, 엑셀) - ECLIPSE
어플리케이션 작성용 ECLIPSE
웹 작성용 ECLIPSE
어플리케이션 프로그램 - 계산기, 디벨로퍼, 메모장 ... 등등 : JAVA
-> 어플리케이션 프로그램개발환경 ECLIPSE
웹 프로그래밍 - 브라우저(크롬,엣지)에서 동작 -> 웹프로그램개발 ECLIPSE
백단프로그램밍 - 서버에서 동작(DB, 서블릿, JSP, 스프링, 스프링부트...)
프론트프로그래밍 - 실제 브라우저에서 실행(HTML, CSS, JS, JQUERY, VUE, REACT...)
HTML, CSS -> JAVA -> JS (순서로 진도)
설치하는 법에 익숙해져야함
웹 프로그램 개발환경을 위한 환경설정
1. jdk 11 설치
2. 환경변수 설정
3. 웹개발용 eclipse 설치
어클리케이션 프로그램 개발환경을 위한 환경설정 java
1. jdk 11 설치
2. 환경변수 설정
3. 어플리케이션 개발용 eclipse 설치