Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CBRD-25574] Add test case for When dropped user then remove related data on db_auth, db_authorization table #1950

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from

Conversation

swi0110
Copy link
Contributor

@swi0110 swi0110 commented Nov 8, 2024

Refer to http://jira.cubrid.org/browse/CBRD-25574
It related http://jira.cubrid.org/browse/CBRD-25580

and It needs to backport release/10.2, release/11.0 release/11.2, release/11.3

DBA
U1
U2 null
U3 null
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

jdbc driver의 구현상의 문제로 db_authorization 테이블의 grants column은 출력되지 않습니다.

evaluate 'u2 grant to u1.tbl (granted select twice, but duplicate granted does not work)';
GRANT SELECT ON u1.tbl TO u2 WITH GRANT OPTION;
GRANT SELECT ON u1.tbl TO u2 WITH GRANT OPTION;

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"WITH GRANT OPTION"을 A 유저에게 부여했다.
취소 또는 변경도 가능한가?
취소/변경이 가능하다면, "WITH GRANT OPTION"을 갖고 있던 시점에 다른계정에 부여했던 권한은 유지되는가? 변경시점에 관련데이타도 함께 소멸하는가?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 내용은 아래의 PR에서 검증할 예정입니다.
#1956

select owner.name, grants from db_authorization where owner.name != 'PUBLIC' order by owner.name;

select name from db_user order by name;

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

○ 추가시나로 검토 - 아래 시나리오 확인하고, 추가 가능한지 검토해 주세요.

case #1
u1 계정에서 객체를 한개 생성
u1이 u2에게 조회와 권한부여 할당
u3에게는 조회 권한만 부여
u2가 u3에게 객체에 대한 조회 및 권한부여 할당

즉, u2는 u1으로부터도 권한을 받고, u2로부터도 권한을 받음
u2 유저 삭제

u3에게는 u1으로부터만 받은 권한이 존재하는지 확인

case #2
u1 계정에서 객체를 한개 생성
u1이 u2, u3에게 조회와 권한부여 할당
u2가 u4에게 객체에 대한 조회, 권한부여 할당
u3가 u4에게 객체에 대한 조회 할당

즉, u4는 u2으로부터도 조회+권한부여를 받고, u3로부터도 조회권한을 받음
u2 유저 삭제하고 u4에게 남아 있는 권한 확인
u3 유저 삭제하고 u4에게 남아 있는 권한 확인

case #3
u1 계정에서 객체를 한개 생성
u1이 u2, u3에게 조회와 권한부여 할당
u2가 u4에게 객체에 대한 조회 할당
u3가 u4에게 객체에 대한 조회 할당

즉, u4는 u2으로부터도 권한을 받고, u3로부터도 권한을 받음
u4 유저 삭제하고 권한데이타 확인

case #4
u1 계정에서 객체를 한개 생성
u1이 u2에게 조회와 권한부여 할당
u2가 u3에게 객체에 대한 조회 할당
u3가 u4에게 객체에 대한 조회 할당
u4가 u5에게 객체에 대한 조회 할당
u5가 u6에게 객체에 대한 조회 할당
u6가 u7에게 객체에 대한 조회 할당

u5 유저 삭제하고 권한데이타 확인
u2 유저 삭제하고 권한데이타 확인

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 내용은 아래의 PR에서 검증되고 있습니다.
PR: #1944
tc path: sql/_35_fig_cake/grant_revoke_redefine/cases/cbrd_25582.sql

@swi0110 swi0110 requested a review from kwonhoil November 22, 2024 07:10
===================================================
0
===================================================
grantor_name grantee_name object_type object_name owner_name auth_type is_grantable
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GRANT EXECUTE ON PROCEDURE u1.hello TO u2; 수행 결과도 포함되어야 하는 것 아닌가요?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

지적 감사합니다.
해당 내용은 개발팀에 report하여 확인중입니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 내용은 추후 spec 논의가 필요할 것으로 판단됩니다.
(관련 url: http://jira.cubrid.org/browse/CBRD-25580?focusedCommentId=4768802&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-4768802 )

따라서 현재 답지를 merge한 후, 추후 spec 논의 후 답지를 변경하는건 어떨까요?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

네, 알겠습니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ssihil
개발팀하고 논의한 내용을 공유 드립니다.
해당 tc는 u3가 db_auth를 통해 자신이 부여 받았거나, 부여한 권한에 대해서 조회하는 내용입니다.
만약, 말씀하신 것 처럼, u3 계정에서 u2가 u1에게 받은 권한을 확인하게 된다면, 보안 이슈가 발생하게 됩니다.
따라서 u3계정에서 'u2가 u1으로부터 부여 받은 권한을 열람하는 것은 바람직하지 않은 것 같습니다.

향후 스펙 논의를 하게 될 경우, 현행 유지 또는 oracle과 유사한 방식으로 변경하는 두가지 관점에서 논의하게 될 것 같습니다.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

네, 알겠습니다.

@swi0110 swi0110 changed the base branch from develop to feature/plcsql-p1 November 25, 2024 10:05
@swi0110
Copy link
Contributor Author

swi0110 commented Nov 25, 2024

Base branch 변경
develop -> feature/plcsql-p1

@swi0110 swi0110 requested a review from ssihil December 16, 2024 09:35
@swi0110 swi0110 changed the base branch from feature/plcsql-p1 to develop December 16, 2024 09:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants