교수님이 제공해주신 SQL 강좌 사이트에 들어가서 보고 진행
oracle 21c XE, sql develpoer 다운로드 받음
강좌 테스트용 scott user 생성 스크립트
1) SQL plus 접속
2) 사용자명 입력: sys as sysdba
3) 비밀번호 입력 안하고 enter
결과: 다음에 접속됨!
scott user 신규 생성 단계로 넘어감
1. DBA 권한으로 접속하여 SCOTT USER를 생성 한다.
SQL> sys as sysdba
SQL> alter session set "_ORACLE_SCRIPT"=true;
입력 후 진행!
SQL> create user scott identified by tiger
(그냥 scott 입력시 아래와 같은 오류 발생 alter문 추가로 해결)
참고글
[Oracle] ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다. 에러 해결 (tistory.com)
2. 권한 부여
SQL> grant connect, resource to scott
결과: 권한이 부여되었습니다
3. scott user로 접속해서 스크립트를 실행
conn scott/tiger
@$ORACLE_HOME/sqlplus/demo/demobld.sql
입력 후 밑에 뜬 경로대로 다운로드 받은 demobld.sql 파일을 옮겨주면 됨
(경로대로 들어가서 'demo' 폴더만 생성해주고 파일 넣어주면 됨)
결과: Demonstration table bulid is complete.
oracle 버전6
OLTP: 온라인 트랜잭션 처리, 다수의 트랜잭션을 실시간으로 실행하는 데이터 처리 유형
OLAP: 온라인 분석 처리, 일반적으로 분석을 목적으로 하는 데이터베이스 내의 트랜잭션을 질의하는 작업을 포함
데이터로부터 더 많은 인사이트를 추출하여 양질의 정보를 기반으로 한 의사결정을 내리는데 활용할 수 있게 해줌
1. SQL 종류
1) DDL (Data Definition Language): 데이터베이스 객체(테이블, 뷰, 인덱스)의 구조를 정의
CREATE: 데이터베이스 객체 생성
DROP: 데이터베이스 객체 삭제
ALTER: 기존에 존재하는 데이터베이스 객체를 다시 정의
2) DML (Data Manipulation Language): 데이터의 삽입, 삭제, 갱신 등을 처리
CREATE - INSERT: 데이터베이스 객체에 데이터를 입력
READ - SELECT: 데이터베이스 객체의 데이터를 읽음
UPDATE: 데이터베이스 객체안의 데이터를 수정
DELETE: 데이터베이스 객체의 데이터를 삭제
3) DCL (Data Control Language): 데이터베이스 사용자의 권한을 제어
GRANT: 데이터베이스 객체에 권한을 부여
REVOKE: 이미 부여된 데이터베이스 객체 권한을 취소
아이패드 내용 추가 예정!!
2-1. user의 생성
create user seonmin identified seonmin;
conn sys/manager as sysdba
create user seonmin identified by seonmin;
conn seonmin/seonmin
conn sys/manager as sysdba
grant connect, resource to c##seonmin;
conn seonmin/seonmin
2-2. user의 변경 및 삭제
- user 변경
conn/as sysdba
> 연결되었습니다.
alter user seonmin identified by sunmin;
>사용자가 변경되었습니다.
conn seonmin/sunmin
> 접속되었습니다.
>여기서 오류 발생시, user 생성 단계로 돌아가서 자신의 계정에 권한 부여하고 오기
conn/as sysdba
>접속되었습니다.
alter user seonmin identified by sunmin;
>사용자가 변경되었습니다.
-user 삭제
conn/as sysdba
select username, default_tablespace, temporary_tablespace from dba_users;
처음에 하면 화면 구성이 달라서 보기 안좋게 출력됨
set linesize 100
set pagesize 300
입력하면 두 줄로 그나마 보기좋게 출력됨
아래 사이트 참고함
https://yunamom.tistory.com/105
2-3. 권한과 롤
시스템 권한
CREATE SESSION: 데이터 베이스를 연결할 수 있는 권한
CREATE ROLE: 오라클 데이터베이스 역할을 생성할 수 있는 권한
CREATE VIEW: 뷰의 생성권한
ALTER USER: 생성한 사용자의 정의를 변경할 수 있는 권한
DROP USER: 생성한 사용자를 삭제시키는 권한
권한 부여: GRANT 권한 TO USER_NAME WITH ADMIN OPTON
WITH ADMIN OPTION: 권한을 부여 받은 사용자도 부여 받은 권한을 다른 사용자 또는 역할로 부여할 수 있게된다.
권한 회수: REVOKE 권한 FROM USER_NAME
GRANT CREATE USER, ALTER USER, DROP USER TO SCOTT WITH ADMIN OPTION;
REVOKE CREATE USER FROM SCOTT;
객체 권한 (object privilege)
USER가 소유하고 있는 특정 객체를 다른 사용자들이 엑세스 하거나 조작할 수 있게 하기 위해 생성한다.
ALTER, DELETE, EXECUTE, INDEX, INSERT, SELECT
객체 권한 부여: GRANT 객체권한 ON 객체명 TO USER_NAME WITH GRANT OPTION;
객체 권한 회수: REVOKE 객체권한 ON 객체명 FROM USER_NAME;
GRANT SELECT, INSERT ON EMP TO SCOTT WITH GRANT OPTION;
REVOKE SELECT, INSERT ON EMP FROM SCOTT;
롤
ROLE을 이용하면 권한 부여와 회수를 쉽게 할 수 있다.
ROLE은 CREATE ROLE 권한을 가진 USER에 의해서 생성된다.
시스템 권한을 부여하고, 취소할 때와 동일한 명령을 사용하여 사용자에게 부여하고 취소한다.
CREATE ROLE c##manager;
GRANT create session, create table TO c##manager;
GRANT c##manager TO c##scott, c##test;
SELECT * FROM ROLE_SYS_PRIVS: ROLE에 부여된 시스템 권한
SELECT * FROM USER_COL_PRIVS_MADE: 현재 사용자 객체의 특정 컬럼에 부여된 객체 권한
오라클 데이터베이스를 생성하면 기본적으로 생성되는 ROLE
CONNECT ROLE
SELECT grantee, privilege
FROM DBA_SYS_PRIVS
WHERE grantee='CONNECT';
RESOURCE ROLE
PL/SQL: 관계형 데이터베이스 시스템인 오라클 DBMS에서 SQL 언어를 확장하기 위해 사용하는
컴퓨터 프로그래밍 언어 중 하나
Store Procedure: 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집
Trigger: 지정된 이벤트가 발생하면 자동으로 실행되는 PL/SQL 블록
PL/SQL을 사용하려면 RESOURCE ROLE을 부여해야 한다.
DBA ROLE
모든 시스템 권한이 부여된 ROLE
DBA ROLE은 데이터베이스 관리자에게만 부여해야 한다.