29
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 오렌지팀 윤석준 선임연구원

DB2 authorization & priviliege

Embed Size (px)

Citation preview

WareValleyhttp://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

오렌지팀 윤석준 선임연구원

Database security and management, WareValley.http://www.WareValley.com

Agenda

User Management

Instance Level Authorization

Database Level Authorization

Object Privilege

Role Management

Database security and management, WareValley.http://www.WareValley.com

User Management

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

Database security and management, WareValley.http://www.WareValley.com

Instance Level Authorization

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하는 권한

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

• 상위 권한은 하위 권한을 포함함

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를 재시작해야 반영됨

Database security and management, WareValley.http://www.WareValley.com

Database Level Authorization

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 자체에 대한 액세스 권한은 없음)

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.ibm.db2.luw.admin.sec.doc/doc/c0055206.html?lang=ko

• 상위 권한은 하위 권한을 포함함

DB2 Authorization & Privilege Guide. WareValley.http://www.WareValley.com

Database Level Authorization : Command

Command

• DBADM ON DATABASE(Privilege 명칭)

12

확인

• SELECT * FROM SYSCAT.DBAUTH

GRANTREVOKE

TOFROM

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

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 는 아직 미사용

Database security and management, WareValley.http://www.WareValley.com

Object Privilege

DB2 Authorization & Privilege Guide. WareValley.http://www.WareValley.com

Object Privilege

15

출처 : http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.sec.doc/doc/c0005548.html?lang=ko

출처 : http://www.dbguide.net/db.db?cmd=view&boardUid=153420&boardConfigUid=9&categoryUid=253&boardIdx=150&boardStep=1

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

GRANTREVOKE

TOFROM

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

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

GRANTREVOKE

TOFROM

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

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 ]

GRANTREVOKE

TOFROM

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

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

GRANTREVOKE

TOFROM

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

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

GRANTREVOKE

TOFROM

USER <사용자명>GROUP <그룹명>ROLE <롤명>PUBLIC

[ WITH GRANT OPTION ]

FUNCTIONPROCEDURE

[ 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

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

GRANTREVOKE

TOFROM

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

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

GRANTREVOKE

TOFROM

USER <사용자명>GROUP <그룹명>ROLE <롤명>PUBLIC

[ WITH GRANT OPTION ]

ALLREADWRITE(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

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

GRANTREVOKE

TOFROM

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

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>GRANTREVOKE

TOFROM

USER <사용자명>GROUP <그룹명>ROLE <롤명>PUBLIC

[ WITH GRANT OPTION ]

CONTROLBINDEXECUTE(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

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

GRANTREVOKE

TOFROM

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

Database security and management, WareValley.http://www.WareValley.com

Role Management

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

REVOKETOFROM

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

Database security and management, WareValley.http://www.WareValley.com

질의 응답

Contact us.

Seoul Office :22F, Nuritkum Square Business Tower, 1605

Sangam-dong, Mapo-gu,Seoul, Korea 121-795Tel + 82.2.2132.5590

Online Contact :[email protected]

http://www.WareValley.com

Japan Office : Shinkasumigaseki Bldg 18F., 3-3-2,

Kasumigaseki, Chiyoda-ku, Tokyo 100-0013Tel +81.3.5532.8801

WareValleyhttp://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 성능관리 및 개발 ]

감사합니다.