:: 테이블등을 만드는 유저와 데이타를 조작하는 유저를 분리하면 어떻게 데이타를
:: 조작하는 유저에게 권한을 주죠??(제가 초보라서...) role을 쓴다던가 또는
:: 꽤 많은 양의 table을 일일이 조작하는 유저에게 권한을 부여하여 줘야 된다는
:: 말씀이십니까... 혹시 다른 방법은없나요..........^_^
다른 방법은 없습니다.
보통 한 응용프로그램에는 보통 하나의 유저만 사용하는 경향이 있더군요.
특히 connection pool 개념을 사용하는 미들웨어를 사용할 경우는
더욱 그러하구요.
이럴 경우 롤을 사용하면 매우 쉽습니다.
( 유저가 많다고 하더라도 . 물론 관리하기는 조금 불편하겠지요.)
sqlplus 의 spool 기능을 사용하면 1000개의 테이블이라고 하더라도
권한을 주기가 매우 쉽지요.
물론 사전에 어떻게 권한을 나누어 줄지에 대한 계획이 있어야 합니다.
가령 예를 들면 scott 유저에 있는 모든 테이블을 app_user 라는
롤에게 권한을 주고 싶다고 하면 scott 로 접속하여서
SQL> set line 300 pagesize 0 echo off feedback off verify off trimspool on
SQL> spool grant_app_user.sql
SQL> prompt spool grant_app_user.lst
SQL> select 'grant select,update,insert,delete on ' || object_name ||
SQL> ' to app_user ; '
SQL> from user_objects
SQL> where object_type = 'TABLE'
SQL> /
SQL> prompt spool off
SQL> spool off
SQL> set line 80 pagesize 14 echo on feedback on
이렇게 하면 현재 디렉토리에 grant_app_user.sql 파일이 생성되어
있고 이 파일을 실행시키면 되지요.
(사실 저는 보통 위의 명령들을 하나의 파일로 만들어 두고 합니다.
보통 sql 문을 만들므로 gen_grant_app_user.sql 로 명명하지요. )
SQL> @grant_app_user.sql
그럼 이만.
|