데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ORACLE XML DB Repository 이 윤 주 인터넷기술 (032ITI10)
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● XML Protocol Server 목 차 2 Access Control List XML DB Foldering 4 1 XML DB Repository XML DB Versioning
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 XML DB Repository? · XML 데이타 및 문서를 관리하기 위한 저장소 –DB 에 있는 data 에 대해 서 hierarchical 개념을 제공. –DB 에 filesystem 기능을 제공. –Filesystem 과 유사하게 object 에 대한 pathname 을 가질 수 있 음. –Content-Oriented Application 에 유용.
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 1 XML DB Repository? Hierarchical Structures
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 2 XML DB Foldering – 다른 resource 들의 list 를 가지는 resource 가 folder 임. –filesystem 의 directory 와 유사. –hierarchical 구조로 content 를 저장할 수 있게 해준다. –FTP, HTTP, WebDAV protocol 로 data 를 access 할 수 있게 해준다. –Filesystem 처럼 동작한다.
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 2 XML DB Foldering Accessing Resources Oracle XML DB 는 resource 에 대한 2 가지 access path 를 제공 The navigational path –Pathname 만을 가지고 access – 사용하기 더 쉽다. – 더 빠른 access 를 제공한다. The SQL path – 모든 attribute 를 기준으로 검색 하여 access 가능. – 다음 2 개의 view 를 이용하여 구현이 됨. –Resource view –Path view –More flexible
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 2 XML DB Foldering SQL Access Resource view operators: –UNDER_PATH : depth 가 0 이상 –EQUALS_PATH : depth = 0
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 2 XML DB Foldering Link Properties – 하나의 resource 는 여러 folder 에 많은 URL 을 가질 수 있 다. –Information 은 link 와 연관되어진다. URL vs. URI - URL : Uniform Resource Locator 로서 문서 전체 혹은 문서내의 한 곳을 가리킨다. - URI : Uniform Resource Identifier 로서 URL 기능 이외에 문서내의 일부 분을 가리킬 수 있다.
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 3 XML Protocol Server Internet Protocols URL 을 통해 data access 할 수 있음. Repository 내의 pathname 에 mapping 됨. Resource 의 content 를 return FTP, HTTP, Web DAV protocol 을 지원해줌. XML 문서들은 URL( 특히 HTTP URL) 을 사용함으로 Repository 가 여러 internet protocol 을 지원하는 것은 매우 중요함.
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 3 XML Protocol Server FTP ACCESS
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 3 XML Protocol Server HTTP ACCESS
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 3 XML Protocol Server WebDAV 화면
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 3 XML Protocol Server 1. Content-Oriented XML 가 문서와 file 과 같은 방법으로 access 될 수 있도록 한다. 2. XML content 를 DB 에 넣고 빼는 작업이 Oracle Net 보다 효율적이다. 3. 현재 존재하는 client 가 추가적인 S/W 설치 없이 DB 를 직접 access 할 수 있다. 4. database security 를 제공한다. 5. 여러 Protocol 을 가지고 database 를 access 할 수 있 다 XML PROTOCOL Server 이용시 장점
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 4 Access Control List Oracle XML DB Resource 에 대해 object-level 의 security 를 관리 Resource 에 대한 access 를 제한하기 위해 Access Control List (ACL) 을 사용 ACL 은 db security 를 보강 The Oracle XML DB ACL security mechanism WebDAV ACL specification 에 기반. Supports system privileges
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 4 Access Control 1.ACL 은 Access Control Entries (ACE) 의 list 이다. 2.Access privilege 은 ACE 에 저장이 된다. 3.Oracle XML DB resource 에 대한 access 는 per-principal basis 로 grant 되거나 deny 된다. 4. 각 ACE 는 주어진 principal 에 대한 access privilege 를 지정한다. 1. 모든 resource 는 ACL 을 갖는다. 2.Principals: 개별 principal / Group principal (Role) 3. 모든 user 는 Global User ID (GUID) 에 의해 구별된다. 4. 각 ACL 은 ACE 들의 list 를 갖는다. 5.ACLID 와 owner ID 는 각각 mapping 된 object 에 관련이 지워진 다. 6.SQL application 은 SQL API 를 직접 쓸 수 있다 Using ACLs Access Control List
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 4 ACL 의 예 (1) : /sys/acls/all_owner_acl.xml Access Control List
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 4 ACL 의 예 (2) : Updating the Default ACL on a Folder 1. xdbadmin 과 xdbuser 생성 2. xdbadmin 권한으로 user folder 생성 Access Control List
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 4 ACL 의 예 (2) : Updating the Default ACL on a Folder 3. xdbuser 계정으로 폴더 생성 4. scott 계정으로 update 명령어 실행 Access Control List
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 4 Oracle XML DB Privileges Privilege 의 종류 Aggregate privilege : 여러 atomic privilege 를 묶은 것. Atomic privilege : 최소 단위의 privilege Privilege NameDescriptionDatabase Counterpart read-propertiesRead the properties of a resourceSELECT read-contentsRead the contents of a resourceSELECT updateUpdate the properties and contents of a resourceUPDATE linkFor containers only. Allows resources to be bound to the container INSERT unlinkFor containers only. Allows resources to be unbound from the container DELETE linktoAllows resources to be linkedN/A Access Control List
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 4 Access Control List Oracle XML DB Privileges Privilege NameDescriptionDatabase Counterpart unlinkfromAllows resources to be unlinkedN/A read-aclRead the resource's ACLSELECT write-acl-refChanges the resource's IDUPDATE update-aclChange the contents of the resource's ACLUPDATE resolveFor containers only: Allows the container to be traversed SELECT dav:lockLock a resource using WebDAV locksUPDATE dav:unlockUnlock a resource locked using a WebDAV lockUPDATE Aggregate Privilege Name Atomic Privileges AllAll atomic privileges dav:allAll atomic privileges except linkto dav:readread-properties, read-contents, resolve dav:writeupdate, link, unlink, unlinkfrom dav:read-aclread-acl dav:write-aclwrite-acl-ref, update-acl
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 4 Oracle XML DB Privileges Privilege NameDescriptionDatabase Counterpart unlinkfromAllows resources to be unlinkedN/A read-aclRead the resource's ACLSELECT write-acl-refChanges the resource's IDUPDATE update-aclChange the contents of the resource's ACLUPDATE resolveFor containers only: Allows the container to be traversed SELECT dav:lockLock a resource using WebDAV locksUPDATE dav:unlockUnlock a resource locked using a WebDAV lockUPDATE Aggregate Privilege Name Atomic Privileges AllAll atomic privileges dav:allAll atomic privileges except linkto dav:readread-properties, read-contents, resolve dav:writeupdate, link, unlink, unlinkfrom dav:read-aclread-acl dav:write-aclwrite-acl-ref, update-acl Access Control List
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 4 Oracle XML DB Privileges OperationDescriptionDatabase Counterpart CREATECreate a new resource in container C update and link on C DELETEDelete resource R from container C update and unlinkfrom on R, update and unlink on C UPDATEUpdate the contents/properties of resources R update on R GETAn FTP/HTTP GET of resource Rread-properties, read-contents on R SET_ACLSet the ACL of a resource Rdav:write-acl on R LISTList the resources in container Cread-properties on C, read-properties on resources in C. Only those resources on which the user has read- properties privilege are listed. Access Control List
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 5 XML DB Versioning Oracle XML DB Versioning Check out 과 check in 은 new version 을 생성해준다. Version-control 이 되는 resource 에 대한 모든 변화를 관리한다. v1 v2 v3 Resource 리소스의 여러 Version 을 관리한다. 한 resource 의 여러 version 을 관리 수정, 삭제가 발생하고 commit 한 이후 라도 old version 을 볼 수 있다. Resource 의 history 를 알 수 있다
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 5 XML DB Versioning Oracle XML DB Versioning Version Resource Version control 이 되는 resource 의 하나의 version read-only 만 가 능하다. version history 가 삭제될 때 같이 삭제된다. version resource 에는 pathname 이 없고 object-id(version resource id) 로 access 된다. Version History VCR 의 모든 변화를 관리하고 유지한다. VCR 이 생성될 때 같이 생성이 된다. 자기자신 고유의 property 를 갖는다. VCR 이 삭제된다고 같이 삭제되지 않는다.
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 5 XML DB Versioning Functions for Versioning Function/ProcedureDescription MakeVersioned() 일반 resource 를 version-controlled resource 로 변환. Checkout() 수정, 삭제 전에 VCR 을 check out 한다. Checkin() Check-out 된 VCR 을 check in 하고 새로이 만들어진 version 의 resource-id 를 return. Uncheckout()Checks in a checked-out resource and returns the resource id of the version before the resource is checked out. GetPredecessors() path name 을 가지고 resource 의 predecessor 의 list 를 return. GetPredsByResId() resource id 를 가지고 resource 의 predecessor list 를 return. GetResourceByResId() objectID 를 가지고 resource 의 XMLType 을 return. GetSuccessors() Path name 을 가지고 successor 의 list 를 return. GetSuccsByResId() Resource id 를 가지고 successor 의 list 를 return.
데이타베이스 보안 ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 5 XML DB Versioning Versioning 의 예 (1)