본문 바로가기

SQL

#49 [SQL] 계정생성, 권한 부여, 동의어(SYSNONYM)

22_System_Role : 주로 DBA(관리자)의 역할
1. 유저 생성 : System(sys) 최고관리자만 가능 (거의 대부분의 작업을 수행 : 계정생성, 권한주기 등)
예제 1) usertest01 유저를 만들고 암호를 pass1라고 지정하세요 (암호에 특수문자 포함이면 " " 사용)

 

[사용법]

CREATE USER 계정명 IDENTIFIED BY 패스워드;

CREATE USER usertest01 IDENTIFIED BY pass1;


2. 권한 부여 : GRANT 권한명 TO 유저명;
예제 2) 위에서 만든 usertest01 유저에 접속 권한을 주세요

 

[사용법]

GRANT CREATE SESSION TO 유저명; : 접속 권한 주기

GRANT CREATE SESSION TO usertest01;

 

 

[사용법]

GRANT CREATE TABLE TO 유저명; : 테이블 생성 권한 주기

GRANT CREATE TABLE TO usertest01;

 

[사용법]

GRANT UNLIMITED TABLESPACE TO 유저명; : 공간에 대한 사용 권한 주기(무한으로 풀어놓음)

GRANT UNLIMITED TABLESPACE TO usertest01;

 


3. 유저에 롤 주기 (ROLE, 권한들의 집합)

 

1. 접속권한들의 집합 : CONNECT

2. 테이블, 인덱스, 함수 등을 사용할 수 있는 권한들의 집합 : RESOURCE

3. View 생성 권한 : CREATE VIEW

GRANT CONNECT, RESOURCE, CREATE VIEW TO usertest01;

usertest01 계정으로 접속


4. 계정 삭제 :  테스트 계정 - 오른쪽 마우스 - 접속 해제 이후 삭제하기

 

[사용법]

DROP USER 유저명;

DROP USER usertest01;

(참고) 동의어 : SYNONYM : 다른 계정의 테이블, 인덱스 등에 간단 별명을 붙여 사용성을 높임
1. 동의어 생성

 

SELECT * FROM 계정명.테이블명;   -- 우리는 우리 계정의 테이블만 조회했어서 생략했었던 것
동의어 이용 : 계정명.테이블명 -> 테이블명 (동의어 생성)

SELECT * FROM 테이블명;               -- 동의어 활용

 

[사용법]

CREATE SYNONYM 테이블명 FOR 계정명.테이블명;

예제 1-1) 관리자 계정으로 테이블(SAMPLETBL) 생성, scott 계정에 그 테이블 조회권한 부여하기
-- 1. 테이블 생성
CREATE TABLE SAMPLETBL(
    MEMO VARCHAR2(50)
);

-- 2. 값 넣기
INSERT INTO SAMPLETBL VALUES('오월은 푸르구나');
INSERT INTO SAMPLETBL VALUES('최선을 다합시다');

-- 3. 데이터 조회
SELECT * FROM SAMPLETBL;

-- 4. 확정
COMMIT;

 

SELECT 권한 부여 : GRANT SELECT ON 테이블명 TO 유저명;

동의어 생성 권한 : GRANT CREATE SYNONYM TO 유저명;

-- 1. SELECT 권한(조회) 부여
GRANT SELECT ON SAMPLETBL TO scott;
-- 2. 동의어 생성 권한 
GRANT CREATE SYNONYM TO scott;

 

예제 1-2) scott 계정으로 접속해서 관리자 계정 테이블 조회 + 동의어로도 조회
-- 1. 관리자 계정의 테이블 조회
SELECT * FROM SYSTEM.SAMPLETBL;

-- 2. 동의어(별명) 생성
CREATE SYNONYM SAMPLETBL FOR SYSTEM.SAMPLETBL;

-- 3. 동의어 재조회
SELECT * FROM SAMPLETBL;


2. 동의어 삭제

 

[사용법]

DROP SYNONYM 동의어명;

DROP SYNONYM SAMPLETBL;

< 계정생성, 권한부여 >

 

1. 계정 생성 :  관리자 계정으로 접속

CREATE USER 계정명 IDENTIFIED BY 패스워드;

 

2. 권한 주기 : 관리자 계정으로 접속

GRANT CREATE SESSION TO 유저명; : 접속 권한 주기

GRANT CREATE TABLE TO 유저명; : 테이블 생성 권한 주기

GRANT UNLIMITED TABLESPACE TO 유저명; : 공간에 대한 사용 권한 주기(무한으로 풀어놓음)

 

3. 유저에 롤 주기 : GRANT CONNECT, RESOURCE, CREATE VIEW TO 계정명; : 관리자 계정으로 접속

1) 접속권한들의 집합 : CONNECT

2) 테이블, 인덱스, 함수 등을 사용할 수 있는 권한들의 집합 : RESOURCE

3) View 생성 권한 : CREATE VIEW

 

4. 계정 삭제 : 로그인 테스트 후 접속 해제 후 관리자 계정으로 접속

DROP USER 유저명;

 

 

< 동의어 (SYNONYM) >

 

1. 동의어 생성

CREATE SYNONYM 테이블명 FOR 계정명.테이블명;

 

2. 동의어 삭제

DROP SYNONYM 동의어명;

'SQL' 카테고리의 다른 글

#49 [SQL] View  (0) 2024.03.07
#49 [SQL] 계정, 권한 연습문제  (0) 2024.03.07
#49 [SQL] SEQUENCE, INDEX 연습문제  (0) 2024.03.07
#48 [SQL] SEQUENCE, INDEX  (0) 2024.03.06
#48 [SQL] 제약조건 연습문제  (0) 2024.03.06