>>김하늘 님께서 쓰시길<<
:: 1)
:: create user sam identified by sam;
:: create role sample;
:: grant create table to sample;
:: grant select any table to sample;
:: grant insert any table to sample;
:: grant update any table to sample;
:: grant sample1 to samp;
::
:: 이런식으로 해서 select,update,insert,create는 가능하게 하고
:: delete만 불가능하게 하는 권한을 설정하려 하는데 되지를 않읍니다.
:: (테이블 생성을 할수가 없읍니다)
당연히 안될 것입니다.
테이블을 만들려는 권한 이외에도 어떤 테이블스페이스에 얼마정도의
공간만큼 만들수 있는지에 대한 권한을 주어야 합니다.
님처럼 무한한 권한을 sam 유저에게 주고 싶으면
grant unlimited tablespace to sam ;
또는 특정 테이블스페이스에만 권한을 주고 싶으면
create user sam identified by sam
default tablespace users
temporary tablespace temp
quota unlimited on users
quota unlimited on xxxx ;
또는
alter user sam
quota unlimited on users
quota unlimited on xxxx ;
:: 2) 기존의 connect 라는 role를 변경하여 사용하려는데 이경우도
:: drop table 처리를 불가능하게는 안됩니다
:: (drop table table명이 가능합니다)
::
자기 테이블은 당연히 모든 권한이 자기 자신에게 있습니다.
당연히 자기 테이블은 자기가 drop 가능하겠죠?
( 사실 테스트해보지 않아서 잘 모름 )
보통 테이블등을 만드는 유저와 데이타를 조작하는 유저는
분리합니다. 하고자 하시는 것처럼 함부로 schema를 조작할 수
없게 하여 구조를 보호할 수 있지요.
보통 명시적으로 테이블에 select,update,delete,insert 권한만
role을 통하여 필요한 다른 유저에게 권한을 부여합니다.
|