django drf를 쓰다 보면, IsAuthenticatedOrReadOnly와 IsAuthenticated를 많이 보게 됩니다. 아주 많이 쓸 텐데요. 사용 용례를 통해서 차이점을 알아보도록 하겠습니다. 먼저 permissions.py를 보시면, SAFE_METHODS가 정의되어 있어요. 'GET', 'HEAD', 'OPTINS' 라고 정의되어 있습니다. 특히 get은 read-only request로 잘 알려진 메서드입니다. IsAuthenticatedOrReadOnly는 request.method가 get, options, head 이거나, 혹은 유저가 인증 되어 있는 상태이면 참을 리턴합니다. 즉, 익명의 유저에 대해서는 get, options, head만 허용합니다. 다음에 IsAuthenti..
권한 검색 결과
postgresql에서 특정 컬럼을 못 보게 하는 role은 어떻게 설정해야 할까요? 요약하면 view를 생성해서 권한을 주는 것입니다. 먼저, 특정 테이블을 볼 수 있는 유저 viewer를 하나 생성하겠습니다. 뭔가 상당히 복잡해 보이는데요. 사실 어려운 것은 없습니다. viewer가 LOGIN이 가능하고, public.app_user에 대해 select 권한이 있다는 것을 의미합니다. dbeaver에서는 viewer의 권한을 app_user 테이블을 선택한 다음에 Permission을 SELECT만 선택하고 적용을 누르시면 됩니다. 권한 설정을 다 하면, app_user에 있는 데이터들을 모두 볼 수 있습니다. 그런데, auth_group에 대해서는 접근할 수 없습니다. 왜냐하면, 제가 'viewer..
django에서 유저 권한에 대해서 알아보겠습니다. 그리고 superuser와 staff에 대해서도 간단히 알아보겠습니다. 먼저, createsuperuser로 슈퍼 유저를 생성합니다. 그 다음에 superuser로 로그인 해 보겠습니다. Permission만 보겠습니다. Active는 건너 뛰기로 하고, Staff와 Superuser가 있습니다. Staff는 어드민 사이트에 로그인 할 수 있는 계정입니다. 그리고, Superuser는, 모든 권한을 가지고 있는 유저입니다. 리눅스로 치면 root user 정도라고 생각하시면 편합니다. 그만큼 책임이 매우 많이 따른다는 의미입니다. 이제, chokw2 계정을 하나 생성하겠습니다. Staff 계정으로 생성한 다음에 CHOKW2로 로그인 해 보겠습니다. 그러..
안녕하세요. 이번 시간에는 postgresql serial permission 오류가 떴을 때, 어떻게 해결해야 하는지 알아보겠습니다. 저는 서버에 psql을 설치했고, 로컬에 dbeaver로 접속할 수 있는 환경을 구축해 놓은 상태입니다. 저는 도서관 api 프로젝트에서 책을 빌리고 반납하고, 어떤 책을 빌렸는지에 대한 api를 추가하는 작업을 하고 test 하는 중이였습니다. 이 중에서 POST /borrow는 책을 빌리는 api입니다. bookId와 userId를 넣으면, 2번 유저가 id가 2인 책을 빌리게 됩니다. 요청을 보내 보겠습니다. 그랬더니 500이 떨궈지는데요. 서버 내에서 문제가 발생했음을 의미합니다. 로그를 보니까 permission denied가 되어 있는데요. 권한 때문에 무엇인..
이번 시간에는 인증과 인가에 대해서 알아봅시다. 아마 http를 공부하시다 보면 한 번 쯤은 들어보셨으리라 생각합니다. 401과 403, 그리고 404가 이것과 연관이 있습니다만, 이 글에서 상태코드를 중요하게 다루지는 않을 겁니다. 티스토리 포럼에 가 보시면, 댓글을 입력하는 란이 있음을 알 수 있어요. 최대 500자까지 입력이 가능해 보이는군요. 입력하려는 순간 로그인을 하라고 뜹니다. 이는 제가 로그인을 하지 않아서, 서버는 내가 누구인지 모르기 때문입니다. 처음 보는 사람이 누구인지 모르는 것처럼요. 로그인을 해 보겠습니다. 로그인을 하고 나서 보니, 코딩강아지라는 것이 확인 되었습니다. 신원이 확인이 된 셈입니다. ip 주소를 알면 되지 않을까요? pc방이라는 반례가 있습니다. 그 후에는, 이렇..
최근댓글