TECH
QUESTION
자주하는 질문답변 입니다.
Oracle
작성자 | 유건데이타 | 등록일 | 2015-07-15 |
제목 | 특정 ROLE에 PASSWORD를 통한 권한 관리 | ||
---|---|---|---|
특정 ROLE에 PASSWORD를 통한 권한 관리
===================================== 오라클 데이타베이스 사용자는 주어진 role에 따라 데이타베이스에 작업이 가능하다. 사용자의 디폴트 롤은 그 사용자에 접속한 시점에서 사용가능한 롤이다. GRANT 커맨드에 의해 롤을 사용자에 부여한 경우 자동적으로 디폴트 롤이 되므로 부여되어 있는 롤의 전부가 디폴트 롤이 된다. 때문에 사용자 권한 도메인에서 특정 role을 disable시키기 위해서는 ALTER USER 커맨드에 의해 그 사용자가 부여되어 있는 롤의 일부를 선택하여 디폴트 롤로 해야하며 다시 enable시키기 위해서는 set command를 이용해야 한다. 데이타베이스의 안전과 보안을 위해서 필요한 경우, 작업에 관련된 role에 패스워드를 주고 이 role에 부여된 작업이 필요할 경우 패스워드를 확인하는 과정을 거칠수 있다. drop tablespace system privilege에 대한 예를 들어 보자. 데이타베이스 사용자가 tablespace를 생성하기 위해서는 create tablespace라는 system privilege가 요구된다. 이러한 작업은 동일한 사용자로 접속하는 모든 session에 대해서 이루어질 수 있도록하는 경우 문제가 될 수 있다. 때문에 작업이 필요한 경우에만 password 확인을 거쳐 작업이 이루어질 수 있도록 한다면 데이타베이스 관리상 안전을 기할 수 있을 것이다. 1. 패스워드를 갖는 role을 생성하고 create tablespace privilege를 부여한다. SQL> create role crtsrole identified by [password]; SQL> grant create tablespace to crtsrole; 2. 새로 생성된 role을 데이타베이스 사용자에게 부여한다. SQL> grant crtsrole to scott; 3. 이 사용자의 default role을 변경한다. SQL> alter user scott default role connect; 다음은 scott user로 tablespace를 생성하는 작업 과정이다. SQL> connect scott/tiger SQL> create tablespace datafile '/oracle/test.dbf' size 10M; ORA-01031: insufficient privileges SQL> set role crtsrole identified by [password]; SQL> create tablespace datafile '/oracle/test.dbf' size 10M; Tablespace created. SQL> set role all except crtsrole |
Comment | |||
---|---|---|---|
등록된 코멘트가 없습니다. |