[Oracle] Create View VS Create Any View 무슨 차이일까?

오라클 데이터베이스에서 Create View와 Create Any View의 차이는 스키마 범위의 차이입니다. 즉, CREATE VIEW 와 CREATE ANY VIEW 는 두 가지 서로 다른 권한 수준을 나타냅니다. 각각의 차이를 살펴보겠습니다.

Grant Create View

Grant Create View

Create View 권한은 계정 본인 범위 (own schema) 입니다.

CREATE VIEW 권한은 사용자가 자신의 스키마 내에서만 뷰를 생성할 수 있도록 허용합니다. 해당 사용자는 자신이 소유한 스키마 내에서만 뷰를 생성할 수 있으며, 다른 사용자의 스키마 범위에서 뷰를 생성할 수는 없습니다.

예를 들어, 사용자 user_name에 대해 CREATE VIEW 권한을 가지면, user_name은 자신의 스키마 내에서만 뷰를 생성할 수 있고, 다른 사용자의 스키마에는 영향을 미치지 않습니다.

GRANT CREATE VIEW TO user_name;

Grant Create Any View

Create Any View 권한은 다른 계정 범위 (another user's schema) 입니다.

CREATE ANY VIEW 권한은 사용자가 데이터베이스 내의 어떤 스키마에서든 뷰를 생성할 수 있도록 허용합니다. 이 권한을 가진 사용자는 자신이 소유하지 않은 다른 사용자의 스키마에서도 뷰를 생성할 수 있습니다. 따라서 CREATE ANY VIEW 권한은 뷰를 생성하는 권한이 데이터베이스 전체로 확장되므로, 권한 부여시 주의가 필요합니다.

일반적으로는 보안과 관련하여 최소한의 권한을 가지도록 부여하는 것이 좋습니다. CREATE VIEW 권한은 특정 사용자가 필요한 뷰를 생성할 수 있도록 해주며, CREATE ANY VIEW는 보다 높은 권한을 부여하므로, 1차적으로 CREATE VIEW 권한 부여를 검토해 주십시오.

GRANT CREATE ANY VIEW TO user_name;

댓글