Home » TOOL » DBEAVER » dbeaver 권한 부여 간단하게 해 봅시다.

dbeaver 권한 부여 간단하게 해 봅시다.

dbeaver를 이용하면 revoke, grant를 쓰지 않고도 권한 부여를 간단하게 할 수 있어요. superuser 권한을 가진 유저로 실습을 해 보도록 하겠습니다.


실습을 위한 준비

dbeaver 권한 부여 실습을 위한 준비를 해 봅시다. viewer 계정을 생성하겠습니다. 이 작업을 수행하기 위해, SuperUser 권한을 가지는 유저로 접속하시면 되겠습니다.

[그림 1] role 생성하기

role을 생성하기 위해, Roles를 오른쪽 버튼 클릭하고 Create New Role 메뉴를 클릭합니다. 그러면, 아이디와 비밀번호를 설정하라는 창이 나올 겁니다. 모두 설정하고 확인을 누릅시다.

[그림 2] viewer의 정보

viewer를 클릭하면, 우측에 유저 properties가 뜨게 됩니다.

[그림 3] viewer에게 할당된 권한 설정

맨 위를 보시면 Super User, Inherit, … 등의 권한 여러 개가 있습니다. 이 중, Can Login만 체크해 주겠습니다. Can Login은 로그인을 할 수 있는 권한입니다. 여기까지 하셨다면, viewer로 로그인을 할 수 있습니다.

그런데, 로그인만 할 수 있지, 다른 건 할 수 없습니다. permission을 주지 않았기 때문입니다.


book 테이블 보는 권한만 주기

각 테이블마다 권한을 부여할 수도 있어요.

[그림 4] viewer에게 부여된 book 권한

book을 클릭해 봅시다. 그러면, permission이 쭉 있는데요. 아무 것도 check 표시가 된 게 없습니다. 이 말은, 어떠한 권한도 없다는 의미입니다. 저는 보는 권한만 필요하다 했으므로, select만 체크 표시 하겠습니다.

[그림 5] viewer에게 book을 볼 권한을 준다.

다음에 밑에 있는 Save를 누르시고 적용하시면 됩니다.

[그림 6] book의 내용 조회

이제, viewer로 접속해서 book의 내용을 조회해 봅시다. 그랬더니 잘 나옵니다. 그런데, 업데이트를 하려는 경우에는 어떨까요?

[그림 7] book을 업데이트

에러가 발생합니다. 왜? viewer는 어떤 권한만 가지고 있나요? select만 가지고 있습니다. 보는 권한만 있는데 왜 update를 실행하려고 하느냐는 것입니다. 권한이 잘 설정 되었음을 볼 수 있어요.


특정 필드만 보기

그런데, 특정 필드만 보게 할 필요도 있어요. 예를 들어, 민감한 정보가 이에 속하겠지요. 이 때

  • 특정 field만 select한 결과를
  • view로 선언합니다.

그리고, 해당 view 에만 select 권한을 주면 됩니다.

[그림 8] view 하나 생성하기

book_view는 book에 대해, title과 author_id만 얻어오게 됩니다.

[그림 9]

그림 9의 1번 쿼리는 book_view 로부터 모든 field를 select 합니다. book_view 로부터 모든 field를 select 하게 되면 title과 author_id만 보이게 됩니다. 당연하게도, id는 안 보이는데요. 해당 view가 book으로부터 id는 가져오지 않기 때문입니다.

[그림 10] book select 권한 회수하기

이제, book으로부터 select 권한을 회수해 옵시다. select 체크 해제해 주면 됩니다.

[그림 11] book_view select 권한 주기

대신에 title과 author_id만 볼 수 있는 book_view에 select 권한을 추가해 줍니다. 그리고 밑에 있는 저장을 눌러서 권한을 반영해 보겠습니다. 그리고 viewer로 로그인 해 보겠습니다.

[그림 12] book을 못 보는 viewer

[그림 12]의 2번 쿼리는 오류가 뜹니다. viewer가 book에 대한 권한이 아무것도 없기 때문입니다.

[그림 13] book_view는 볼 수 있는 viewer

하지만, book_view는 볼 수 있습니다. book_view에는 title과 author_id만 있어요. viewer를 이용해서 특정 유저가 특정 필드들을 못 보게 할 수 있는 셈입니다. 이 글에서는 dbeaver 권한 부여 하는 방법을 간단하게 알아보았어요. 그리고, 특정 테이블의 특정 필드만을 보게 하기 위해

  • viewer를 생성하고
  • viewer에 권한을 주는 방법

을 배웠습니다.

Leave a Comment

3 + 8 =