2. DBMS이야기/01. PostgreSQL

PostgreSQL Privileges Test 2

OSSW(Open Source System SoftWare 2014. 8. 11. 10:06

TEST 2 : REVOKE

       A유저가 B유저에게 권한 부여시, A의 권한이 해제되면 B의 권한은 어떻게 되는가?


두번째 시나리오는 첫번째 시나리오와는 반대로 권한 해제에 관한 테스트입니다.


- Table 생성

edb=# create table newyork.test_05(col1 number(1));

CREATE TABLE

 edb=# insert into newyork.test_05 values (1);

 INSERT 0 1

edb=# commit;

COMMIT


신규 유저 생성 및 권한 부여

 edb=# create user jisun with password 'jisun1234';

CREATE ROLE

edb=# grant select on newyork.test_05 to hoon with grant option;

GRANT

edb=# \dp newyork.test_05;

Schema

Name

Type

Access privileges
Access privileges

Column access privileges

newyork

test_05

table

enterprisedb=arwdDxt/enterprisedb+hoon=r*/enterprisedb


(1 row)


 - hoon 유저 테이블 확인

edb=# \c edb hoon

Password for user hoon:

You are now connected to database "edb" as user "hoon".

edb=> select * from newyork.test_05;

col1

1

(1 row)

 

- jisun 유저에 권한 부여

edb=> grant select on newyork.test_05 to jisun with grant option;

GRANT

 edb=# \dp newyork.test_05;

Schema

Name

Type

Access privileges
Access privileges

Column access privileges

newyork

test_05

table

enterprisedb=arwdDxt/enterprisedb+hoon=r*/enterprisedb       +jisun=r*/enterprisedb


(1 row)

 

- jisun 유저로 확인

edb=# \c edb jisun

Password for user jisun:

You are now connected to database "edb" as user "jisun".

edb=> select * from newyork.test_05;

col1

1

 

(1 row)

 

- hoon 권한 회수

edb=# revoke select on newyork.test_05 from hoon;

ERROR:  dependent privileges e HINT:  Use CASCADE to revoke them too.

edb=# revoke select on newyork.test_05 from hoon cascade;

REVOKE     

edb=# \dp newyork.test_05;

Schema

Name

Type

Access privileges
Access privileges

Column access privileges

newyork

test_05

table

enterprisedb=arwdDxt/enterprisedb

 ERROR:  permission denied for relation test_05


해당 테스트를 통해 jisun에게 권한을 준 hoon의 권한을 없애자 jisun의 권한도 함께 없어진 것을 알  수 있습니다. 다음 테스트는 PPAS 의 테이블스페이스에 대한 테스트를 진행할 예정입니다.


감사합니다.


Post By. 김지선(2014.08.10)