728x90

    지난 포스트에 이어

    사용자생성에 대해 알아보겠습니다.


    지난 포스트에서는 테이블스페이스에 대해 알아보았는데요.


    해당 테이블스페이스를 원하시는 유저에 디폴트로 할당할수 있습니다.

    (지정하지 않는다면 USER테이블스페이스가 할당됩니다)


    create user 유저명 identified by 비밀번호 

    default tablespace 테이블 스페이스명;​

    자 이제 오라클을 사용할수 있는 권한을 줘볼까요?

    권한을 줄때는 GRANT명령어가 사용됩니다.


    (사용자 생성 후 권한부여)

    -- 오라클 사용자 생성 --


    create user TEST_USER identified by TEST_USER

    default tablespace TEST_TABLESPACE;


    grant create session to TEST_USER;

    --데이터 생성 권한 부여


    grant create table to TEST_USER;

    --테이블 생성 권한 부여


    alter user TEST_USER quota 50m on TEST_TABLESPACE;

    --유저한테 테이블 스페이스 할당량 부여


    권한

    아하하




    할당받은 테이블스페이스 이외에 다른 테이블스페이스에 테이블을 생성한다면?

    ORA-01950: no privileges on tablespace '테이블스페이스명'

    다음과 같은 에러가 나면서 create가 되지 않습니다.


    하지만 다음과 같은 권한을 준다면 모든 테이블 스페이스에서 할당량을 받을수 있습니다.

    grant unlimited tablespace to 타겟유저명;

    --> 모든 테이블스페이스에 할당량을 줄수 있는 권한 부여

    권한

    권한을 줬다면 권한을 뻇어 볼까요?

    권한을 뻇을떄는 REVOKE명령어를 사용합니다.

    revoke unlimited tablespace from TEST_USER;

    -- 디폴트테이블스페이스를 제외한 모든 테이블스페이스의 할당 권한 해제


    revoke create table from TEST_USER;

    -- 테이블을 생성할 권한을 빼앗음

    revoke create session from TEST_USER;

    -- 오라클에 접근할 권한을 빼앗음


    -- TEST_USER에게 hr처럼 role(privilege 들의 집합)을 부여하겟다.

    /*

    create user TEST_USER identified by TEST_USER

    default tablespace TEST_TABLESPACE;


    */

    grant connect, resource to TEST_USER;

    --다음과 같은 명령어를 치면 hr과 거의 흡사한 권한을 부여받게된다.

    권한


    특정 권한마다 무엇을 의미하는지 찾아볼까요?

    select *

    from role_sys_privs

    where role in('CONNECT','RESOURCE');

    --CONNECT,와 RESOURCE에는 이러한 권한들이 

    --잇다

    --resource 권한만 부여받으면

    --모든테이블스페이스에 할당권한을 부여받음

    권한

    다음은 DBA권한에 대한 role_sys_privs 의 데이터 입니다.

    권한



    (자기 자신이 부여받은 테이블스페이스의 할당량 조회하기)

    select * from user_ts_quotas; 


    -- max_bytes가 -1라면 무제한입니다.



    Posted by 천상나타