일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 문자열
- algoritm
- 데이터베이스
- 알고리즘
- Dynamic Programming
- Eclipse
- select
- 동적계획법
- 백준
- 오라클
- Algorithm
- 반복문
- 입출력
- 2156
- 그대로 출력하기
- 소숫점처리
- Database
- db
- JOIN
- 자바
- SQL
- Java
- 10951
- darkest dark
- n x 2 타일링 2
- ANSI JOIN
- 데이터길이
- oracle
- DP
- 변수
- Today
- Total
목록SQL (38)
Cracking Code
ROLE은 권한들의 묶음입니다. 편리하게 권한을 관리하여 사용자에게 권한의 묶음을 줄 수 있습니다. ORACLE에서 기본적으로 제공하는 ROLE이며 사용자를 생성하고 기본적으로 CONNECT 와 RESOURCE 롤을 부여하면 기본 사용자의 권한이 모두 부여됩니다. GRANT role_name TO user_name; USER01 에게 기본적인 사용자의 권한들을 부여해봅시다. GRANT CONNECT, RESOURCE TO USER01; 이제 USER는 CONNECT와 RESOURCE에 해당하는 권한들을 가지게 됩니다. 또한 여타 권한 부여와 같이 REVOKE 문으로 ROLE을 회수할 수 있습니다. REVOKE CONNECT, RESOURCE FROM USER01;
데이터베이스에 사용자를 생성하면 해당 사용자는 모든 권한이 없습니다. 권한을 부여하는 방법에 대해서 알아봅시다. DBA는 데이터베이스와 객체에 접근할 수 있는 권한을 부여할 수 있습니다. 또한 일반 사용자도 다른 사용자 또는 ROLE 에게 권한을 부여할 수 있는 권한을 부여 받을 수 있습니다. 권한의 종류는 시스템과 객체가 있습니다. 시스템 권한 GRANT privilege[, privilege] TO user[, user | role | PUBLIC ...] 유저에 대한 CREATE, DROP, 모든 테이블의 DROP, BACKUP, SELECT, CREAT 등이 있으며 보통 일반 사용자에게는 부여하지 않는 권한입니다. 일반 사용자에게 부여가능한 시스템 권한은 CREATE SESSION, CREATE ..
데이터베이스에서 DBA는 사용자를 생성할 수 있습니다. 생성된 사용자는 DBA에게 권한을 부여 받아야 데이터베이스에 접근 및 명령문을 사용할 수 있습니다. 데이터베이스 보안 다중 사용자 환경에서 개별 사용자들은 데이터베이스 접근 및 사용에 있어서 적절한 보안을 유지해야 합니다. 보안의 종류로는 시스템 보안, 데이터 보안이 있습니다. 시스템 보안 사용자 계정 생성, 암호 변경, 디스크 공간 할당, 시스템 작업 등 시스템 수준에서의 데이터베이스 접근 및 사용을 관리하는 단계입니다. 인증 관련된 보안으로 주로 DBA의 주 권한에 관련되어있습니다. 데이터 보안 데이터베이스 객체에 대한 사용자들의 접근 및 사용을 관리하는 단계입니다. 권한 관련된 보안입니다. 사용자 생성 등의 관리는 최고 권한을 가진 계정으로 진..
데이터가 많을수록 찾고자 하는 데이터를 찾는다는 것은 점점 시간이 많이 소요될 것입니다. 이번 시간엔 소요 시간을 줄이고자 데이터베이스에서 사용하는 INDEX에 대해 알아보겠습니다. 인덱스는 검색 속도를 높이기 위해 Oracle 서버가 사용하는 스키마 객체입니다. 인덱스 없이 데이터를 검색하면 테이블의 모든 데이터를 읽어 데이터를 선별합니다. 테이블을 삭제하면 관련 인덱스는 자동으로 생성됩니다. INDEX 생성 PRIMARY KEY와 UNIQUE 제약 조건 지정 시, UNIQUE INDEX는 자동으로 생성됩니다. 수동으로 생성하기 CREATE INDEX index ON table (column,[, column] ...); 사원 테이블의 이름이 SMITH인 사원을 찾아봅시다. SELECT * FROM E..
테이블에 데이터를 삽입할 때 기본키는 보통 숫자로 합니다. 숫자의 증감을 알아서 계산해주어 편리한 데이터 삽입이 가능하게 하는 시퀀스에 대해 알아봅시다. CREATE SEQUENCE sequence [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE n | NOCACHE]; 시퀀스는 자동으로 숫자의 증감을 수행합니다. INCREMENT BY 절로 n 만큼 증감을 정하고 START WITH 절은 시작할 숫자 n을 정합니다. MAXVALUE 절은 n이 증가될 수 있는 최대의 숫자를 정하며 MINVALUE 절로 n까지 감소할 수 있는 숫자를 정합니다. CYCLE 절을 ..
데이터베이스 관리자가 아닌 사용자에게 접근성을 제한하여 테이블의 일부만 보여주거나 JOIN할 테이블의 수정을 편리하게 할 수 있는 VIEW에 대해 알아보겠습니다. CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias] ...)] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY [CONSTRAINT constraint]]; -- FORCE는 기본 테이블이 없어도 강제로 뷰 생성 뷰는 테이블 또는 다른 뷰를 기초로 하는 논리적인 테이블입니다. 그 자체로는 소유하는 데이터가 없지만 창문 처럼 어떤 데이터를 보거나 변경할 수 있습니다. 뷰에서 참조하는 테이블을 기본 테이블(B..
이미 만들어진 테이블에 수정이 필요할 경우 사용할 수 있는 ALTER 명령문에 대해서 알아봅시다. ALTER TABLE 명령문으로 컬럼의 추가, 변경, 삭제, 제약 조건의 추가, 삭제 등 다양하게 테이블의 구조를 변경할 수 있습니다. 1. 컬럼 추가 ALTER TABLE table ADD ( column datatype [DEFAULT expr] [, column datatype] ... ); table에 컬럼을 추가합니다. 2개의 컬럼을 가진 SCOTT_T 테이블을 만들고 컬럼 1개를 더 추가해보겠습니다. CREATE TABLE SCOTT_T( NUM NUMBER(4), NAME VARCHAR2(10) ); ALTER TABLE SCOTT_T ADD (ADDRESS VARCHAR2(30)); ADDRE..
쓰지 않는 테이블을 제거하기 위한 DROP 명령문에 대해 알아보겠습니다. DROP TABLE table [CASCADE CONSTRAINT]; 데이터베이스에서 해당 table을 제거합니다. 테이블에 저장된 모든 데이터와 관련 INDEX 및 제약조건이 삭제 됩니다. 이전 시간에 사용했던 EMP_C 테이블을 제거해보겠습니다. DROP TABLE EMP_C; 간단한 명령문 하나로 테이블 하나를 통째로 날려버렸습니다. 😎 만약, 해당 테이블이 어떤 테이블을 자식 테이블로 두고 있다면 뒤에 CASCADE CONSTRAINT 옵션을 붙이면 삭제할 수 있습니다.