1. WareValley
http://www.WareValley.com
Database Audit and Protection [ DB 접근통제 ]
Database Encryption [ DB 암호화 ]
Database Vulnerability Assessment [ DB 취약점 분석 ]
Database SQL Query Approval [ DB 작업결재 ]
Database Performance Monitoring and Management [ DB 성능관리 및 개발 ]
WareValley
DB2 Authorization & Privilege
오렌지팀 윤석준 선임연구원
2. Database security and management, WareValley.
http://www.WareValley.com
Agenda
User Management
Instance Level Authorization
Database Level Authorization
Object Privilege
Role Management
3. Database security and management, WareValley.
http://www.WareValley.com
User Management
4. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
User Management
User Management
• OS에서 관리 ( User, Group )
• User / Group 목록을 볼 수 있는 Catalog가 SYSCAT에 없음
• Instance Level 관리는 Console Tool에서 수행. (SQL Tool 에서는 불가)
• Database Level 관리는 SQL Tool에서 가능
• Role 생성 및 관리는 SQL Tool에서 가능
• Role 목록 조회가 가능한 Catalog가 존재함 (SYSCAT.Roles)
4
5. Database security and management, WareValley.
http://www.WareValley.com
Instance Level
Authorization
6. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Instance Level Authorization
Instance level 차원의 기능을 수행
• Database 작성 및 upgrade
• Tablespace 관리
• Instance에서의 활동 및 성능 monitoring
6
Instance level Authorization
• SYSADM : Instance 전체를 관리
• SYSCTRL : Database 관리 program instance를 관리
• SYSMAINT : Instance 내에서 database를 유지하는 권한
• SYSMON : Instance 및 해당 database를 monitoring하는 권한
7. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Instance Level Authorization : Diagram
7
출처 : http://www-
01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com
.ibm.db2.luw.admin.sec.doc/doc/c0055206.html?lang=ko
• 상위 권한은 하위 권한을 포함함
8. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Instance Level Authorization : Command
권한 부여
• UPDATE DBM CFG USING SYSCTRL_GROUP <그룹명>
• DB2STOP FORCE
• DB2START
8
권한 초기화
• UPDATE DBM CFG USING SYSCTRL_GROUP NULL
• DB2STOP FORCE
• DB2START
주의 사항
• 권한을 설정 한 후에는 반드시 instance를 재시작해야 반영됨
9. Database security and management, WareValley.
http://www.WareValley.com
Database Level
Authorization
10. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Database Level Authorization
특정 database 내에서의 기능을 수행
• GRANT or REVOKE Privilege
• Data INSERT / SELECT / DELETE / UPDATE
• Workload management
10
Database level Authorization
• SECADM : Database 내에서 보안을 관리하는 권한
• DBADM : Database 관리
• ACCESSCTRL : 권한 및 특권을 부여, 취소 (SECADM, DBADM, ACCESSCTRL, DATAACCESS 제외)
• DATAACCESS : Data에 액세스하는 권한
• SQLADM : SQL query를 monitoring하고 조정
• WLMADM : 워크로드를 관리
• EXPLAIN : Query 계획 Explain하기 위한 권한 (Data 자체에 대한 액세스 권한은 없음)
11. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Database Level Authorization : Diagram
11
출처 : http://www-
01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ib
m.db2.luw.admin.sec.doc/doc/c0055206.html?lang=ko
• 상위 권한은 하위 권한을 포함함
12. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Database Level Authorization : Command
Command
• DBADM ON DATABASE
(Privilege 명칭)
12
확인
• SELECT * FROM SYSCAT.DBAUTH
GRANT
REVOKE
TO
FROM
USER <사용자명>
GROUP <그룹명>
ROLE <롤명>
PUBLIC
참조 : http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000958.html?cp=SSEPGG_9.7.0%2F2-10-6-130&lang=ko
13. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Database Level Authorization & Privilege
13
Privilege Description SYSCAT.DBAUTH
BINDADD 새로운 Package를 생성 할 수 있는 특권 BINDADDAUTH
CONNECT Database에 연결 할 수 있는 특권 CONNECTAUTH
CREATETAB 새로운 Table을 생성 할 수 있는 특권 CREATETABAUTH
DBADM Database 관리자 권한 DBADMAUTH
CREATE_EXTERNAL_ROUTINE 응용프로그램 및 기타 데이터베이스 사용자가 사용할 Procedure 생성 할
수 있는 특권
EXTERNALROUTINEAUTH
IMPLICIT_SCHEMA 아직 존재하지 않는 Schema명을 이용하여 CREATE로 Object 작성시 내재
적으로 Schema가 작성할 수 있는 특권. 내재적으로 작성된 Schema는
SYSIBM이 소유자가 되며, PUBLIC에게 이 Schema에서 Object를 작성할 특
권이 부여됨
IMPLSCHEMAAUTH
LOAD Data를 Table로 LOAD 할 수 있는 특권 LOADAUTH
CREATE_NOT_FENCED_ROUTINE 비분리 UDF (User-Defined Function) 또는 Procedure 작성 할 수 있는 특권 NOFENCEAUTH
QUIESCE_CONNECT Quiesce 상태에서 Database에 액세스 허용 QUIESCECONNECTAUTH
SECURITYADM 보안담당자 권한 SECURITYADMAUTH
SQLADM SQL문을 모니터링하고 조정할 수 있는 권한 SQLADMAUTH
WLMADM Workload 관리자 권한 WLMADMAUTH
EXPLAIN Query 계획에 참조된 Table의 Data에 액세스할 수 있는 Privilege없이 해당
Query Excution Plan을 Explain 할 수 있는 권한
EXPLAINAUTH
DATAACCESS Table에 작성된 Data에 엑세스 할 수 있는 특권 DATAACCESSAUTH
ACCESSCTRL ACCESSCTRL, DATAACCESS, DBADM, SECADM 및 감사 루틴에 대한 특권
을 제외한 모든 특권과 Database 권한을 부여 및 취소 할 수 있는 권한
ACCESSCTRLAUTH
Authorization & Privilege List
* LIBRARYAUTH, CREATESECUREAUTH 는 아직 미사용
14. Database security and management, WareValley.
http://www.WareValley.com
Object Privilege
16. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Schema Privilege
16
Privilege Description SYSCAT.SCHEMAAUTH
CREATEIN Schema 내에 Object를 생성 할 수 있는 특권 CREATEINAUTH
ALTERIN Schema 내에 Object를 변경 할 수 있는 특권 ALTERINAUTH
DROPIN Schema 내에 Object를 제거 할 수 있는 특권 DROPINAUTH
Privilege List
Command
• CREATEIN ON SCHEMA <스키마명>
(Privilege 명칭)
확인
• SELECT * FROM SYSCAT.SCHEMAAUTH
GRANT
REVOKE
TO
FROM
USER <사용자명>
GROUP <그룹명>
ROLE <롤명>
PUBLIC
참조 : http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000964.html?cp=SSEPGG_9.7.0%2F2-10-6-138&lang=ko
17. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Tablespace Privilege
17
Privilege Description SYSCAT.TBSCHEMAAUTH
USE Tablespace에 새로운 Table을 생성 할 수 있는 특권 USEAUTH
Privilege List
Command
• USE ON TABLESPACE <TB명칭>
(Privilege)
확인
• SELECT * FROM SYSCAT.TBSPACEAUTH
GRANT
REVOKE
TO
FROM
USER <사용자명>
GROUP <그룹명>
ROLE <롤명>
PUBLIC
[ WITH GRANT OPTION ]
참조 : http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0003304.html?cp=SSEPGG_9.7.0%2F2-10-6-143&lang=ko
18. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Table, View, Alias, MQT Privilege
18
Privilege Description SYSCAT.TABAUTH
CONTROL 모든 특권을 가지며, CONTROL 특권을 제외한 모든 특권을 다른 사용자에게 부여 할 수 있음. 해
당 Object 제거 가능
CONTROLAUTH
ALL CONTROL을 제외한 모든 특권
ALTER 기존 Table에 Column추가, Primary/Unique Key 추가, Column Check 조건 추가 및 제거, Trigger
작성 할 수 있는 특권
ALTERAUTH
DELETE Table/View 에서 행을 삭제 할 수 있는 특권 DELETEAUTH
INDEX Table에 INDEX를 추가 할 수 있는 특권 INDEXAUTH
INSERT Table/View 에서 행을 추가 및 IMPORT 유틸리티를 실행 할 수 있는 특권 INSERTAUTH
REFERENCES Table을 관계의 상위로 지정하여, Foreign key를 작성하거나 제거 할 수 있는 특권. 특정 Column
에 대해서만 지정이 가능.
REFAUTH
SELECT Table/View 에서 Data를 조회 및 EXPORT 유틸리티를 실행 할 수 있는 특권 SELECTAUTH
UPDATE Table/View 에서 Column 값을 변경 할 수 있는 특권. 특정 Column에 대해서만 지정이 가능 UPDATEAUTH
Privilege List
Command
• ALL ON TABLE <명칭/별명>
(Privilege 명칭)
확인
• SELECT * FROM SYSCAT.TABAUTH
[ WITH GRANT OPTION ]
GRANT
REVOKE
TO
FROM
USER <사용자명>
GROUP <그룹명>
ROLE <롤명>
PUBLIC
REFERENCE [ ( column-name ) ]
UPDATE
참조 : http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000966.html?cp=SSEPGG_9.7.0%2F2-10-6-144&lang=ko
19. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Index Privilege
19
Privilege Description SYSCAT.INDEXAUTH
CONTROL Index 소유자에게 자동으로 부여되는 특권으로 DROP INDEX를 할 수 있는 특권 CONTROLAUTH
Privilege List
Command
• CONTROL ON INDEX <INDEX명칭>
(Privilege 명칭)
확인
• SELECT * FROM SYSCAT.INDEXAUTH
GRANT
REVOKE
TO
FROM
USER <사용자명>
GROUP <그룹명>
ROLE <롤명>
PUBLIC
참조 : http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000961.html?cp=SSEPGG_9.7.0%2F2-10-6-133&lang=ko
20. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Routine Privilege
20
Privilege Description SYSCAT.ROUTINEAUTH
EXECUTE 실행 할 수 있는 특권 EXECUTEAUTH
Privilege List
Command
• EXECUTE ON
(Privilege 명칭)
확인
• SELECT * FROM SYSCAT.ROUTINEAUTH
GRANT
REVOKE
TO
FROM
USER <사용자명>
GROUP <그룹명>
ROLE <롤명>
PUBLIC
[ WITH GRANT OPTION ]
FUNCTION
PROCEDURE
[ SPECIFIC ] <명칭>
<스키마명>.*
참조 : http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0007699.html?cp=SSEPGG_9.7.0%2F2-10-6-137&lang=ko
21. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Sequence Privilege
21
Privilege Description SYSCAT.SEQUENCEAUTH
USAGE NEXTVAL, PREVVAL 표현식을 사용 할 수 있는 특권 USAGEAUTH
ALTER ALTER SEQUENCE를 사용하여 정의를 변경 할 수 있는 특권 ALTERAUTH
Privilege List
Command
• USAGE ON SEQUENCE <시퀸스명>
(Privilege 명칭)
확인
• SELECT * FROM SYSCAT.SEQUENCEAUTH
GRANT
REVOKE
TO
FROM
USER <사용자명>
GROUP <그룹명>
ROLE <롤명>
PUBLIC
[ WITH GRANT OPTION ]
참조 : http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0004202.html?cp=SSEPGG_9.7.0%2F2-10-6-140&lang=ko
22. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Global variable Privilege
22
Privilege Description SYSCAT.VARIABLEAUTH
READ 값을 읽을 수 있음 READAUTH
WRITE 값을 대입할 수 있음 WRITEAUTH
Privilege List
Command
• ON VARIABLE <variable-name>
확인
• SELECT * FROM SYSCAT.VARIABLEAUTH
GRANT
REVOKE
TO
FROM
USER <사용자명>
GROUP <그룹명>
ROLE <롤명>
PUBLIC
[ WITH GRANT OPTION ]
ALL
READ
WRITE
(Privilege)
참조 : http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0050500.html?cp=SSEPGG_9.7.0%2F2-10-6-132&lang=ko
23. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Module Privilege
23
Privilege Description SYSCAT.MODULEAUTH
EXECUTE Module 참조 가능
- Routine 실행
- 사용자 정의 Type을 읽고 쓸 수 있음
- 사용자 정의 Type 참조 가능
- Conditions 참조 가능
EXECUTEAUTH
Privilege List
Command
• EXECUTE ON MODULE <module-name>
(Privilege)
확인
• SELECT * FROM SYSCAT.MODULEAUTH
GRANT
REVOKE
TO
FROM
USER <사용자명>
GROUP <그룹명>
ROLE <롤명>
PUBLIC
[ WITH GRANT OPTION ]
참조 : http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0054779.html?cp=SSEPGG_9.7.0%2F2-10-6-134&lang=ko
24. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Package Privilege
24
Privilege Description SYSCAT.PACKAGEAUTH
CONTROL 모든 특권을 가지며, CONTROL 특권을 제외한 모든 특권을 다른 사용자에게 부여 할 수 있
음. 해당 Object 제거 가능
CONTROLAUTH
BIND Bind, Rebind 가능, 새로운 버전의 Package 생성 가능 BINDAUTH
EXECUTE 실행 가능 EXECUTEAUTH
Privilege List
확인
• SELECT * FROM SYSCAT.PACKAGEAUTH
Command
• ON PACKAGE <package-name>GRANT
REVOKE
TO
FROM
USER <사용자명>
GROUP <그룹명>
ROLE <롤명>
PUBLIC
[ WITH GRANT OPTION ]
CONTROL
BIND
EXECUTE
(Privilege)
참조 : http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000962.html?cp=SSEPGG_9.7.0%2F2-10-6-135&lang=ko
25. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Workload Privilege
25
Privilege Description SYSCAT.WORKLOADAUTH
USAGE 사용 가능 USAGEAUTH
Privilege List
Command
• USAGE ON WORKLOAD <workload-name>
(Privilege)
확인
• SELECT * FROM SYSCAT.WORKLOADAUTH
GRANT
REVOKE
TO
FROM
USER <사용자명>
GROUP <그룹명>
ROLE <롤명>
PUBLIC
참조 : http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0050556.html?cp=SSEPGG_9.7.0%2F2-10-6-145&lang=ko
26. Database security and management, WareValley.
http://www.WareValley.com
Role Management
27. DB2 Authorization & Privilege Guide. WareValley.
http://www.WareValley.com
Role Management
Role Management
• Privilege 세트를 보유하고 있으며, 다른 Role, User, Group에게 상속이 가능
• SECADM이 CREATE, GRANT, REVOKE를 수행
27
생성
• CREATE ROLE <롤명칭>
관리
• ROLE <롤명칭>
[ WITH ADMIN OPTION ]GRANT
REVOKE
TO
FROM
USER <사용자명>
GROUP <그룹명>
ROLE <롤명>
PUBLIC
참조 : http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.ref.doc/doc/r0050616.html?cp=SSEPGG_9.7.0%2F2-10-6-136&lang=ko
29. Contact us.
Seoul Office :
22F, Nuritkum Square Business Tower, 1605
Sangam-dong, Mapo-gu,
Seoul, Korea 121-795
Tel + 82.2.2132.5590
Online Contact :
Sales@WareValley.com
http://www.WareValley.com
Japan Office :
Shinkasumigaseki Bldg 18F., 3-3-2,
Kasumigaseki, Chiyoda-ku, Tokyo 100-0013
Tel +81.3.5532.8801
WareValley
http://www.WareValley.com
Database Audit and Protection [ DB 접근통제 ]
Database Encryption [ DB 암호화 ]
Database Vulnerability Assessment [ DB 취약점 분석 ]
Database SQL Query Approval [ DB 작업결재 ]
Database Performance Monitoring and Management [ DB 성능관리 및 개발 ]
감사합니다.