http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.admin.doc/doc/c0005524.htm
각 데이터베이스 권한은 이를 보유하는 권한 부여 ID가 데이터베이스 전체에서 일부 특정 유형의 조치를 수행할 수 있게 합니다. 데이터베이스 권한은 특권과는 다릅니다. 특권은 테이블 또는 인덱스와 같은 특정 데이터베이스 오브젝트에서만 특정 조치를 취할 수 있습니다. 10가지의 데이터베이스 권한이 있습니다.
- DBADM
- 보유자에게 데이터베이스 관리자 역할을 할 수 있는 권한을 부여합니다. 특히 보유자에게 SECADM을 제외한 다른 모든 데이터베이스 권한을 부여합니다.
db2 connect to CCM
db2 grant dbadm on database to user db2admin
db2 disconnect CCM
- CONNECT
- 보유자가 데이터베이스에 연결할 수 있게 합니다.
- SECADM
- 보유자에게 데이터베이스 보안과 관련된 많은 것들을 구성하고 데이터베이스 오브젝트의 소유권을 전환할 수 있는 능력을 줍니다. 예를 들어, SECADM 권한을 가진 사용자는 레이블 기준 액세스 제어(LBAC) 기능의 일부인 모든 오브젝트를 작성, 삭제, 권한 부여 또는 권한 취소할 수 있습니다. SECADM 특정 기능은 SYSADM를 포함한 어떤 기타 권한으로도 실행할 수 없습니다.
- BINDADD
- 보유자가 데이터베이스의 새 패키지를 작성할 수 있게 합니다.
- CREATETAB
- 보유자가 데이터베이스에 새 테이블을 작성할 수 있게 합니다.
- CREATE_EXTERNAL_ROUTINE
- 보유자가 응용프로그램 및 기타 데이터베이스 사용자가 사용할 프로시저를 작성할 수 있게 합니다.
- CREATE_NOT_FENCED_ROUTINE
- 보유자가 『비분리』 UDF(User-Defined Function) 또는 프로시저를 작성할 수 있게 합니다. CREATE_EXTERNAL_ROUTINE은 CREATE_NOT_FENCED_ROUTINE이 부여된 모든 사용자에게 자동으로 부여됩니다.
주의::데이터베이스 관리 프로그램은 『비분리』 프로시저 또는 UDF로부터 스토리지 또는 제어 블록을 보호하지 못합니다. 이 권한을 가진 사용자는 UDF를 『비분리』로 등록하기 전에 세심하게 테스트해야 합니다. - IMPLICIT_SCHEMA
- 모든 사용자가 아직 존재하지 않는 스키마 이름을 가진 CREATE문을 사용하여 오브젝트를 작성함으로써 내재적으로 스키마를 작성할 수 있게 합니다. SYSIBM은 내재적으로 작성된 스키마의 소유자가 되며, PUBLIC에는 이 스키마에서 오브젝트를 작성할 특권이 부여됩니다.
- LOAD
- 보유자가 데이터를 테이블로 로드할 수 있게 합니다.
- QUIESCE_CONNECT
- 보유자가 Quiesce 상태에서 데이터베이스에 액세스할 수 있게 합니다.
SYSADM 권한을 가진 권한 부여 ID만이 SECADM 및 DBADM 권한을 부여할 수 있습니다. 모든 기타 권한은 SYSADM 또는 DBADM 권한을 가진 권한 부여 ID를 사용하여 부여할 수 있습니다.
데이터베이스를 작성할 때, 새 데이터베이스에 대해 다음과 같은 데이터베이스 권한이 자동으로 PUBLIC에 부여됩니다.
- CREATETAB
- BINDADD
- CONNECT
- IMPLICIT_SCHEMA
또한 다음 특권도 부여됩니다.
- USERSPACE1 테이블 스페이스에서의 USE 특권
- 시스템 카탈로그 뷰에 대한 SELECT 특권
PUBLIC에서 데이터베이스 권한을 제거하려면, DBADM 또는 SYSADM 권한을 가진 권한 부여 ID가 명시적으로 이를 취소해야 합니다.
DB2 특권
DB2에서의 Security는 권한과 특권으로 분리가 되며, 각 Object에 관한 특권은 SYSCAT.DBAUTH, SYSCAT.TABAUTH, SYSCAT.TABLESPACEAUTH와 같이 AUTH로 끝나는 SYSCAT VIEW에서 조회할 수 있다.
예를 들어 DBADM 유저는 SYSCAT.DBAUTH 카탈로그 뷰에서 검색할 수 있다.
SELECT DISTINCT GRANTEE, GRANTEETYPE
FROM SYSCAT.DBAUTH
WHERE DBADMAUTH = 'Y'
SELECT distinct GRANTEE, GRANTEETYPE, TABSCHEMA
FROM SYSCAT.TABAUTH ;
댓글 없음:
댓글 쓰기