Technology Explorer for IBM DB2(TE)는 DB2 for Linux®, UNIX® and Windows®를 위한 경량의 오픈 소스 웹 기반 콘솔로 다수의 DB2 기능에 대한 그래픽 인터페이스를 제공한다. 이 기사에서는 Technology Explorer에서 db2auth라는 보안 플러그인을 사용하여 DB2에 대한 사용자 및 그룹 인증을 제어하는 방법에 대해 설명한다. (참고자료에서 db2auth에 대한 자세한 정보를 볼 수 있다.) 또한 이 기사에서는 db2auth 플러그인에 대한 TE의 지원이 구현된 방법에 대해서도 설명한다.
db2auth 플러그인과 관련된 장점과 고려 사항은 다음과 같다.
- db2auth는 운영 체제 또는 Kerberos와 같은 외부 인증 저장소 대신 DB2 데이터베이스에
인증 정보를 저장한다. 이는 대부분의 사용자가 새 운영 체제 사용자 계정을 작성하지 않아도 된다는 것을
의미한다. 기본 DB2 for Linux, UNIX and Windows 패키지에서는 다음과 같은 외부 인증 메커니즘 중 하나에
따라 인증과 권한이 분리되어 있다.
- 운영 체제
- LDAP(Lightweight Directory Access Protocol)
- Kerberos
- db2auth를 사용하면 데이터베이스 내에 인증 정보를 저장하는 다른 데이터베이스 소프트웨어(예:
MySQL)로부터 원활하게 마이그레이션할 수 있다.
- db2auth는 DB2에서 초기에 제공하는 보안을 제한한다. 플러그인을 설치하기
전에 데이터베이스에 필요한 보안 레벨을 고려하거나 다른 데이터베이스 소프트웨어로부터
임시로 마이그레이션하는 단계에서만 이 플러그인을 사용할지 여부를 고려한다.
- TE를 포함하여 DB2와 작동하는 외부 애플리케이션의 경우, 이 플러그인은
사용자 및 그룹 인증을 직접 제어할 수 있는 방법을 제공한다. 그리고 이 방법을 활용하면 사용자
및 그룹 인증 정보를 제어하는 모듈을 구현할 수 있다.
- 플러그인에서 작성한 저장 프로시저를 사용하여 SQL을 통해 DB2 내의 모든 항목을
제어할 수 있으므로 사용자 및 그룹을 훨씬 쉽게 관리할 수 있다.
- 사전 패키지된 애플리케이션에 사용되는 사용자 및 그룹 정보를 애플리케이션 데이터와 함께 DB2 데이터베이스 내에 분배할 수 있다. 인증 및 멤버십 정보가 테이블에 저장되어 있기 때문에 관리자가 쉽게 확인할 수 있다.
db2auth 플러그인은 모든 사용자, 암호 및 그룹 정보를 데이터베이스에 저장한다. 초기 설정 시에 DB2AUTH라는 스키마와 USERS, GROUPS, GROUP_MEMBERSHIP 등의 세 개의 테이블이 작성된다.
- USERS 테이블에는 사용자 ID(고유 이름), 암호(MD5 해시), 암호 만기 날짜, 계정의 잠김 여부, 실패한 로그인 시도 횟수가 저장된다.
- GROUPS 테이블에는 그룹 ID(고유 이름)가 저장된다.
- GROUP_MEMBERSHIP 테이블에는 그룹 ID와 그룹 내 사용자의 멤버십을 나타내는 사용자 ID가 저장된다.
또한 이 플러그인은 사용자, 그룹 및 그룹 멤버십 정보를 추가, 제거 및 수정하는 데 사용되는 저장 프로시저를 작성한다.
사용 편의성과 보안 사이에는 항상 상충 관계가 있기 마련이다. 인증과 권한 부여 사이에 있는 분리 계층을 줄이면 결과적으로 보안이 약화된다. 사용자 계정과 (해시된) 암호가 데이터베이스에 직접 저장될 뿐만 아니라 다음과 같은 정보도 db2auth_key.txt라는 일반 텍스트 파일에 저장된다.
- DB2AUTH 스키마와 세 가지 테이블이 저장된 데이터베이스 이름
- SYSADM_GROUP 구성 매개변수가 가리키는 그룹 이름
- 관리자의 사용자 이름
- 원격 데이터베이스에 대한 db2auth 플러그인을 사용하는 관리자의 암호(해시되지 않음)
db2auth 플러그인의 문서에 파일을 숨기고 암호화하는 방법이 설명되어 있으며, 이 방법은 제한된 보안 기능을 제공한다.
db2auth 플러그인은 명령행 인터페이스를 통해 인증 정보를 제어하는 기능을 제공한다. TE 지원은 사용하기 쉬운 그래픽 사용자 인터페이스를 제공한다. 관리자는 몇 번의 클릭만으로 사용자와 그룹을 작성 및 삭제하고, 그룹 멤버십을 수정하고, 사용자 암호를 변경할 수 있다. 또한 이 모듈은 사용자, 그룹 및 멤버십 정보가 포함된 세 테이블을 그래픽으로 표현할 수 있다.
참고자료에 나열된 SourceForge의 TE 사이트에서 TE를 다운로드할 수 있다.
db2auth 플러그인이 올바르게 설치되어 있고 실행 중이어야 한다. 참고자료에서 이 플러그인을 다운로드하는 방법을 설명하는 플러그인 기사에 대한 링크를 볼 수 있다. db2auth의 readme 문서에서 모든 설치 및 설정 단계에 대한 설명을 볼 수 있다.
- TE에서 관리 권한이 있는 사용자로서 db2auth_key.txt에 지정되어 있는 권한 부여 데이터베이스에 연결한다.
- Tools 메뉴의 드롭 다운 메뉴에서 Db2auth Plugin Control을 선택한다. 이 모듈은 먼저
SELECT COUNT(*) FROM SYSCAT.PROCEDURES WHERE PROCSCHEMA = DB2AUTH쿼리를 실행하여 db2auth 플러그인이 시스템에 설치되어 있는지 확인한다. 그런 다음 DB2AUTH.USERS 테이블이 있는지 확인한다. 플러그인과 테이블이 없으면 사용자에게 경고가 표시되면서 모듈이 로드되지 않는다. - 모듈이 로드된 후에는 세로로 구분된 두 개의 패널로 구성된 페이지가 표시된다. 각기 다른 테이블이 들어 있는 네 개의 탭이 표시된다. 이러한 탭은 다음과 같다.
- Users: 이 탭에는 암호를 제외한 DB2AUTH.USERS 테이블의 모든 내용이 표시되며 사용자를 추가하고, 삭제하고, 사용자의 암호를 변경할 수 있는 메뉴 옵션이 있다. 각 행에는 해당 행의 사용자를 삭제할 수 있는 아이콘이 표시된다. 각 사용자의 암호를 변경할 수 있는 아이콘도 표시된다. 그림 1에서는 Users 탭을 보여 준다.
그림 1. Users 탭
- Groups: 이 탭에는 DB2AUTH.GROUPS 테이블에 있는 모든 그룹이 표시되며 그룹을 추가 및 삭제할 수 있는 메뉴 옵션이 있다. 각 행에는 해당 행의 그룹을 삭제할 수 있는 아이콘이 표시된다. 그림 2에서는 Groups 탭을 보여 준다.
그림 2. Groups 탭
- Group Memberships: 이 탭에는 DB2AUTH.USERS, DB2AUTH.GROUPS 및 DB2AUTH.GROUP_MEMBERSHIP 테이블에 대한 완전 외부 조인을 기반으로 하는 모든 사용자-그룹 맵핑이 표시된다. 그룹에 속하지 않은 사용자의 그룹 ID는 null로 표시된다. 사용자가 없는 그룹의 경우에는 행의 사용자 ID가 null로 표시된다. 이 탭에는 사용자를 추가하고, 그룹을 추가하고, 멤버십을 편집할 수 있는 메뉴 옵션이 있다. 각 행에는 해당 행이 나타내는 멤버십을 삭제할 수 있는 아이콘이 표시된다. 그림 3에서는 Group Memberships 탭을 보여 준다.
그림 3. Group Memberships 탭
- Master View: Group Memberships 탭과 마찬가지로 이 탭에는 DB2AUTH.USERS, DB2AUTH.GROUPS 및 DB2AUTH.GROUP_MEMBERSHIP 테이블에 대한 완전 외부 조인을 기반으로 하는 모든 사용자-그룹 맵핑이 표시된다. 하지만 Master View 탭에서는 관리자가 사용자 추가, 사용자 삭제, 그룹 추가, 그룹 삭제, 멤버십 편집 및 암호 변경을 포함하여 다른 세 개의 탭에서 수행할 수 있는 모든 작업을 완료할 수 있다. 그림 4에서는 Master View 탭을 보여 준다.
그림 4. Master View 탭
네 개의 모든 탭에서 사용자 ID 또는 그룹 ID 옆의 각 행에는 사람 모양의 아이콘이 있으며 이 아이콘을 클릭하면 해당 사용자 ID 또는 그룹 ID가 SYSIBMADM.AUTHORIZATIONS 테이블의 AUTHID 필드에 있을 경우 맨 아래 패널에 권한 부여 정보가 표시된다. 그림 5에서는 맨 아래 패널을 보여 준다.
그림 5. 맨 아래 패널
이 기사에서는 db2auth 플러그인의 장단점과 이 플러그인을 지원하기 위해 작성된 TE 모듈의 설계와 사용법에 대해 살펴보았다. 그리고 TE의 사용자 인터페이스와 이 인터페이스를 탐색하는 방법에 대해서도 알아보았다.
교육
- "DB2 Security, Part 11: Develop a security plug-in for DB2 database
authentication"(developerWorks, 2008년 2월)에서는 보안 플러그인을 개발하는 단계를 살펴본
후 Gene Kligerman이 개발한 db2auth 플러그인을 사용하는 방법에 대해 설명한다.
- developerWorks의
DB2 for Linux, UNIX and Windows영역에서 DB2 기술 향상에 도움이 되는 여러 가지 리소스를 볼 수 있다.
- developerWorks Information Management
영역에서는 Information Management에 대한 정보를 제공한다. 기술 자료, 사용법 기사, 교육, 다운로드, 제품 정보 등을 찾아볼 수 있다.
- developerWorks 기술 행사 및 웹 캐스트를 통해 최신 정보를 얻을 수 있다.
제품 및 기술 얻기
- SourceForge에서 Technology
Explorer for IBM DB2를 다운로드할 수 있다.
- 커뮤니티를 위한 무료 버전의 DB2 Express
데이터베이스 서버인 DB2 Express-C 9.7을 다운로드할 수 있다.
- DB2
9.7 for Linux, UNIX, and Windows의 무료 시험판을 다운로드할 수 있다.
- developerWorks에서 직접 다운로드할 수 있는
IBM 시험판 소프트웨어를 사용하여 후속 개발 프로젝트를 구현해 보자.
토론
- 포럼에 참여하기.
- developerWorks 포럼 & 블로그를 통해 developerWorks 커뮤니티에 참여하자.
