본문 바로가기
Database/SQLD

윈도우 함수와 문제풀이3 - 권한

by KkingKkang 2023. 6. 5.
GRANT 유저에게 개체에 대한 권한을 허용
WITH GRANT OPTION : 권한을 부여받은 유저가 동일권한을 줄 수 있는 옵션
GRANT select ON schema::a_user TO 유저명;
DENY 유저에게 개체에 대한 권한을 차단 DENY select ON schema::a_user TO 유저명;
DENY select ON a_user.table1 TO 유저명;
REVOKE 유저에게 부여된 권한을 회수
CASCADE : WITH GRANT OPTION 으로 부여된 권한까지 모두 회수
REVOKE select ON schema::a_user FROM 유저명;

 

1. 아래 설명 중 ㄱ,ㄴ에 해당하는 내용을 작성하시오

DBMS에 생성된 USER와 다양한 권한들 사이에서 중개 역할을 할 수 있도록
DBMS에서는 ROLE을 제공한다.
이러한 ROLE을 DBMS USER에게 부여하기 위해서는 [ㄱ] 명령을 사용하며, 
ROLE을 회수하기 위해서는 [ㄴ] 명령을 사용한다. 

GRANT / REVOKE

 

2. 다음 중 B_User가 아래의 작업을 수행할 수 있도록 권한을 부여하는 DCL로 가장 적절한 것은?

다시 복습! DCL, DML, DDL, TCL

  • DML( 데이터 조작어 : Data Manipulation Language ) : SELECT, INSERT, UPDATE, DELETE
  • DDL( 데이터 정의어 : Data Definition Language ) : CREATE, ALTER, DROP, RENAME
  • DCL( 데이터 제어어 : Data Control Language ) : GRANT, REVOKE
  • TCL( 트랜잭션 제어어 : Transaction Control  Language) : COMMIT, ROLLBACK
UPDATE A_USER, TB_A
SET COL1 = 'AAAA'
WHERE COL2 = 3

▶ GRANT SELECT, UPDATE ON A_USER TO B_USER

 

3. 다음 ㄱ 에 들어갈 내용을 쓰시오.

 DBMS 사용자를 생성하면 기본적으로 많은 권한을 부여해야 한다.
많은 DBMS에서는 DBMS 관리자가 사용자별로 권한을 관리해야 하는 부담과 복잡함을 줄이기 위하여
다양한 권한을 그룹으로 묶어 관리할 수 있도록 사용자와 권한 사이에서 중개 역할을 수행하는 [ㄱ]을 제공한다.

답 : ROLE

 

4. 사용지 LEE가 릴레이션 R을 생성한 후, 아래와 같은 권한부여 SQL문들을 실행하였다. 그 이후에 기능이 실행 가능한 SQL을 2개 고르시오. (단, A,B의 데이터 타입은 정수형이다)

LEE : GRANT SELECT, INSERT, DELETE ON R TO KIM WITH GRANT OPTION;
KIM : GRANT SELECT, INSERT, DELETE ON R TO PARK;
LEE : REVOKE DELETE ON R FROM KIM;
LEE : REVOKE INSERT ON R FROM KIM CASCADE;

1) PARK : SELECT * FROM R WHERE A = 400;

2) PARK : INSERT INTO R VALUES(400,600);

3) PARK : DELETE FROM R WHERE B = 800;

4) KIM : INSERT INTO R VALUES(500,600);

 

5. 다음 중 PL/SQL에 대한 설명으로 가장 부적절한 것은?

PL/SQL 이란?
ORACLE에서 지원하는 프로그래밍 언어의 특성을 수용한 SQL의 확장. 
PL/SQL Block내에서 SQL의 DML문과 Query문, 절차형 언어(if, loop)등을 사용하여 절차적 프로그래밍을 가능하게 한 강력한 트랜잭션 언어이다.
PL/SQL 문은 블록구조로 이루어지며, PL/SQL 자신이 컴파일 엔진을 포함하고 있다.

선언부 - 실행부 - 예외처리부

1) 변수와 상수 등을 사용하여 일반SQL 문장을 실행할 때 WHERE절의 조건 등으로 대입할 수 있다.

2) Procedure, User Defined Function, Trigger 객체를 PL/SQL로 작성할 수 있다.

3) PL/SQL 로 작성된 Procedure, UserDefined Function은 전체가 하나의 트랜젝션으로 처리되어야 한다.

▶ 트랜잭션 별로 별도의 처리를 하기 위해서 PL/SQL사용

4) Procedure 내부에 작성된 절차적 코드는 PL/SQL 엔진이 처리하고 일반적인 SQL 문장은 SQL실행기가 처리한다.

 

6. PL/SQL - EXCUTE IMMEDIATE - Dynamic SQL

 

7. 다음 중 절차형 SQL 모듈에 대한 설명으로 가장 부적절한 것은?

1) 저장형 프로시저는 SQL을 로직과 함께 데이터베이스 내에 저장해 놓은 명령문의 집합을 의미한다.

2) 저장형 함수(사용자 정의 함수)는 단독적으로 실행되기 보다는 다른 SQL문을 통하여 호출되고 그 결과를 리턴하는 SQL의 보조적인 역할을 한다.

3) 트리거는 특정한 테이블에 INSERT, UPDATE, DELETE와 같은 DML문이 수행되었을 때 데이터베이스에서 자동으로 동작하도록 작성된 프로그램이다.

4) 데이터의 무결성과 일관성을 위해서 사용자 정의 함수를 사용한다. 트리거

 

8. 다음 중 Trigger에 대한 설명으로 가장 부적절한 것은?

1) Trigger는 데이터베이스에 의해서 자동으로 호출되고 수행된다.

2) Trigger는 특정 테이블에 대해서 INSERT, UPDATE, DELETE 문이 수행되었을 때 호출되도록 정의할 수 있다.

3) Trigger은 TCL을 이용하여 트랜잭션을 제어할 수 있다. X ▶ TCL은 트리거에서 쓸 수 없다! 

4) Trigger은 데이터베이스에 로그인하는 작업에도 정의할 수 있다. 

 

9. 특정한 테이블에 INSERT, UPDATE, DELETE와 같은 DML문이 수행되었을 때 데이터베이스에서 자동으로 동작하도록 작성된 저장 프로그램은?

정답 : TRIGGER

반응형

'Database > SQLD' 카테고리의 다른 글

옵티마이저  (1) 2023.06.09
PL/SQL  (0) 2023.06.05
윈도우 함수와 문제풀이 2  (0) 2023.06.05
윈도우함수와 문제풀이  (0) 2023.06.05
SQLD 문제풀이 14 - 집계함수  (0) 2023.06.04

댓글