본문 바로가기
MySql

MySQL의 개별 필드에 대한 권한 부여

by 베이스 공부 2021. 1. 1.
반응형

MySQL 데이터베이스가 있고 그 안에 여러 테이블이 있습니다. 물론 하나는 사용자 이름과 암호를 저장하기위한 사용자 테이블입니다 (나머지 정보도 포함). 스키마의 모든 테이블에 대해 개별 필드에 대한 사용자 (또는 그룹) 권한을 부여 할 수 있기를 원합니다. 아마도 예가 도움이 될 것입니다.

ACCOUNTS라는 테이블이 있습니다. 이 테이블에서 사용자는 회사에 대한 모든 데이터 (이름, 주소, POC 등)를 작성하고 최신 상태로 유지합니다. 그러나 LastPaymentDate (사용자가 변경할 수 없습니다!)와 같이 해당 사용자에 대해 읽기 전용 인이 테이블에 필드를 첨부하고 싶습니다. 또한 이러한 사용자간에 권한이 다릅니다. 예를 들어 관리자 / 수퍼 유저는 회사의 이름과 주소를 변경할 수 있지만 표준 사용자는 변경해서는 안됩니다.

권한 (그룹)의 각 수준에 대해 하나씩 테이블에 대해 여러 뷰를 작성하여 수행해야 할 수도 있다고 생각합니다. 저는 MySQL에 비교적 익숙하지 않아 이것이 최선의 방법인지 모르겠습니다. 보거나 편집 할 수있는 필드를 알려주는 조회 테이블도 볼 수 있습니다.

내 초기 생각은 댓글 (또는 필드 이름)에 0-5의 값을 포함하는 것이었고 사용자는 권한 수준 (0- 볼 수 없음, 1- 읽기 전용, 2- 읽기- 쓰기; 3- (사용되지 않음); 4- (사용되지 않음); 5- 필드 자체를 편집 / 삭제합니다.

어떤 제안? 견해? 표시 할 필드를 결정하기위한 조회 테이블? 다시 말하지만, 테이블 내의 각 열에 대해 전체 테이블이 아닙니다.

 

해결 방법

 

다음 코드를 사용하여 개별 열에 대한 권한을 사용자에게 부여 할 수 있습니다.

GRANT SELECT (col1), INSERT (col1,col2) ON mydb.mytbl TO 'someuser'@'somehost';

여기에서 가져온 예 :


또한 MySQL에서는 사용자 그룹 또는 SQL ROLES (권한 그룹)에 대한 지원이 없습니다.

 

참조 페이지 https://stackoverflow.com/questions/16674715

 

 

반응형

댓글