23c에서 개발자를 위해 새로 추가된 DB_DEVELOPER_ROLE role
새로 소개할 정도의 내용인지는 모르겠습니다.
전 그냥 새로 추가된 ROLE 정도외에는 큰 의미성은 모르겠네요.
기존에는 오라클에서 제공하는 ROLE 중 CONNECT, RESOURCE 권한을 개발자나 운영자가 사용했습니다.
혹은 사이트에서 정의한 ROLE을 만들어서 DB 유저에게 권한을 부여하여 사용했습니다.
이번 23c에서 DB_DEVELOPER_ROLE 을 추가되었습니다.
ROLE 이름에서 알수 있듯이 개발자를 위한 추가 ROLE인 것 같습니다.
이제 CONNECT, RESOURCE ROLE 대신 이 DB_DEVELOPER_ROLE을 부여해서 사용하게 하면 될 거 같습니다.
하지만 사이트에서 직접 적절하게 리스트업한 권한으로 ROLE을 생성해 부여하는 것을 더 추천합니다.
이번에 생성된 ROLE을 사용할지 여부는 판단하셔서 사용해야 할 거 같습니다.
아래는 DB_DEVELOPER_ROLE ROLE에 어떤 권한이 있는지 확인하고
CONNECT, RESOURCE ROLE과 어떤 권한이 다른지 확인을 해 보았습니다.
먼저 이번에 새로 생성된 DB_DEVELOPER_ROLE 에 어떤 권한이 있는지 확인해 봅니다.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
SQL> col role for A20
SQL> col PRIVILEGE for A28
SQL> col GRANTED_ROLE for a20
SQL> col table_name for a25
SQL> col owner for A10
SQL> SELECT ROLE
2 ,PRIVILEGE
3 ,ADMIN_OPTION
4 ,COMMON
5 ,INHERITED
6 FROM ROLE_SYS_PRIVS
7 WHERE ROLE = 'DB_DEVELOPER_ROLE';
ROLE PRIVILEGE ADMIN_OPT COMMON INHERITED
-------------------- ---------------------------- --------- --------- ---------
DB_DEVELOPER_ROLE CREATE DOMAIN NO YES YES
DB_DEVELOPER_ROLE CREATE MLE NO YES YES
DB_DEVELOPER_ROLE CREATE ANALYTIC VIEW NO YES YES
DB_DEVELOPER_ROLE CREATE HIERARCHY NO YES YES
DB_DEVELOPER_ROLE CREATE ATTRIBUTE DIMENSION NO YES YES
DB_DEVELOPER_ROLE EXECUTE DYNAMIC MLE NO YES YES
DB_DEVELOPER_ROLE CREATE CUBE BUILD PROCESS NO YES YES
DB_DEVELOPER_ROLE CREATE CUBE NO YES YES
DB_DEVELOPER_ROLE CREATE CUBE DIMENSION NO YES YES
DB_DEVELOPER_ROLE CREATE MINING MODEL NO YES YES
DB_DEVELOPER_ROLE CREATE JOB NO YES YES
DB_DEVELOPER_ROLE DEBUG CONNECT SESSION NO YES YES
DB_DEVELOPER_ROLE ON COMMIT REFRESH NO YES YES
DB_DEVELOPER_ROLE CREATE DIMENSION NO YES YES
DB_DEVELOPER_ROLE CREATE TYPE NO YES YES
DB_DEVELOPER_ROLE CREATE MATERIALIZED VIEW NO YES YES
DB_DEVELOPER_ROLE CREATE TRIGGER NO YES YES
DB_DEVELOPER_ROLE CREATE PROCEDURE NO YES YES
DB_DEVELOPER_ROLE FORCE TRANSACTION NO YES YES
DB_DEVELOPER_ROLE CREATE SEQUENCE NO YES YES
DB_DEVELOPER_ROLE CREATE VIEW NO YES YES
DB_DEVELOPER_ROLE CREATE SYNONYM NO YES YES
DB_DEVELOPER_ROLE CREATE TABLE NO YES YES
DB_DEVELOPER_ROLE CREATE SESSION NO YES YES
24 행이 선택되었습니다.
SQL> SELECT ROLE
2 ,GRANTED_ROLE
3 ,ADMIN_OPTION
4 ,COMMON
5 ,INHERITED
6 FROM ROLE_ROLE_PRIVS
7 WHERE ROLE = 'DB_DEVELOPER_ROLE';
ROLE GRANTED_ROLE ADMIN_OPT COMMON INHERITED
-------------------- -------------------- --------- --------- ---------
DB_DEVELOPER_ROLE SODA_APP NO YES YES
DB_DEVELOPER_ROLE CTXAPP NO YES YES
SQL> SELECT OWNER, TABLE_NAME, PRIVILEGE
2 FROM ROLE_TAB_PRIVS
3 WHERE ROLE = 'DB_DEVELOPER_ROLE';
OWNER TABLE_NAME PRIVILEGE
---------- ------------------------- ----------------------------
SYS JAVASCRIPT EXECUTE
SYS V_$STATNAME READ
SYS V_$PARAMETER READ
SYS DBA_PENDING_TRANSACTIONS SELECT
|
위와 같은 권한을 부여받고 있습니다.
이제 CONNECT, RESOURCE ROLE 이 어떤 권한을 가지고 있는지 확인해 보겠습니다.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
SQL> SELECT ROLE
2 ,PRIVILEGE
3 ,ADMIN_OPTION
4 ,COMMON
5 ,INHERITED
6 FROM ROLE_SYS_PRIVS
7 WHERE ROLE = 'CONNECT';
ROLE PRIVILEGE ADMIN_OPT COMMON INHERITED
-------------------- ---------------------------- --------- --------- ---------
CONNECT SET CONTAINER NO YES YES
CONNECT CREATE SESSION NO YES YES
SQL> SELECT ROLE
2 ,GRANTED_ROLE
3 ,ADMIN_OPTION
4 ,COMMON
5 ,INHERITED
6 FROM ROLE_ROLE_PRIVS
7 WHERE ROLE = 'CONNECT';
선택된 레코드가 없습니다.
SQL> SELECT OWNER, TABLE_NAME, PRIVILEGE
2 FROM ROLE_TAB_PRIVS
3 WHERE ROLE = 'CONNECT';
선택된 레코드가 없습니다.
SQL> SELECT ROLE
2 ,PRIVILEGE
3 ,ADMIN_OPTION
4 ,COMMON
5 ,INHERITED
6 FROM ROLE_SYS_PRIVS
7 WHERE ROLE = 'RESOURCE';
ROLE PRIVILEGE ADMIN_OPT COMMON INHERITED
-------------------- ---------------------------- --------- --------- ---------
RESOURCE CREATE PROPERTY GRAPH NO YES YES
RESOURCE CREATE ANALYTIC VIEW NO YES YES
RESOURCE CREATE HIERARCHY NO YES YES
RESOURCE CREATE ATTRIBUTE DIMENSION NO YES YES
RESOURCE CREATE INDEXTYPE NO YES YES
RESOURCE CREATE OPERATOR NO YES YES
RESOURCE CREATE TYPE NO YES YES
RESOURCE CREATE MATERIALIZED VIEW NO YES YES
RESOURCE CREATE TRIGGER NO YES YES
RESOURCE CREATE PROCEDURE NO YES YES
RESOURCE CREATE SEQUENCE NO YES YES
RESOURCE CREATE VIEW NO YES YES
RESOURCE CREATE SYNONYM NO YES YES
RESOURCE CREATE CLUSTER NO YES YES
RESOURCE CREATE TABLE NO YES YES
15 행이 선택되었습니다.
SQL> SELECT ROLE
2 ,GRANTED_ROLE
3 ,ADMIN_OPTION
4 ,COMMON
5 ,INHERITED
6 FROM ROLE_ROLE_PRIVS
7 WHERE ROLE = 'RESOURCE';
ROLE GRANTED_ROLE ADMIN_OPT COMMON INHERITED
-------------------- -------------------- --------- --------- ---------
RESOURCE SODA_APP NO YES YES
SQL> SELECT OWNER, TABLE_NAME, PRIVILEGE
2 FROM ROLE_TAB_PRIVS
3 WHERE ROLE = 'RESOURCE';
선택된 레코드가 없습니다.
|
일단 리스트를 봤을 때는 DB_DEVELOPER_ROLE 가 CONNECT, RESOURCE ROLE 보다 더 많은 권한을 받은 거 같습니다.
그러기에 DB_DEVELOPER_ROLE ROLE을 사용할지는 내용을 살펴보고
적합한지 판단을 해서 검토해 봐야 할 거 같습니다.
추천은 적합한 권한을 별도로 ROLE 로 만들어 사용하는 것입니다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
11 | (23c 신기능) GROUP BY 절에 컬럼 별칭이나 포지션 사용 | 명품관 | 2023.04.26 | 998 |
10 | (23c 신기능) UPDATE 문장을 위한 Default 값 NULL 설정 가능 | 명품관 | 2023.04.26 | 650 |
9 | (23c 신기능) PL/SQL 에서 SQL로 Transpiler 자동변환(Automatic PL/SQL to SQL Transpiler) | 명품관 | 2023.04.25 | 285 |
8 | (23c 신기능) INTERVAL 데이터타입에 집계함수와 분석함수 사용 가능 | 명품관 | 2023.04.20 | 392 |
» | (23c 신기능) 23c에서 개발자를 위해 새로 추가된 DB_DEVELOPER_ROLE role | 명품관 | 2023.04.19 | 281 |
6 | (23c 신기능) IF EXISTS와 IF NOT EXISTS 사용 | 명품관 | 2023.04.18 | 1536 |
5 | (23c 신기능) Annotation 사용하기(comment와 유사한) | 명품관 | 2023.04.18 | 237 |
4 | (23c 신기능) Direct Joins for UPDATE and DELETE Statements(직접 조인을 사용한 UPDATE, DELETE) | 명품관 | 2023.04.12 | 225 |
3 | JSON-Relational Duality View 튜토리얼 | 명품관 | 2023.04.10 | 190 |
2 | 오라클 프로세스 prefix가 ora_ 에서 db_로 변경 | 명품관 | 2023.04.06 | 223 |
1 | Oracle Database 23c Free Install with Oracle Linux 8.2(리눅스 8.2 버전에서 오라클 23c 설치) [1] | 명품관 | 2023.04.05 | 1662 |