TLDR;
테이블의 정확한 데이터가 아닌 MySQL 메타데이터(적어도 스키마, 테이블, 열)에 대해서만 "감사" 사용자 액세스 권한을 부여할 수 있습니까?
MySQL 8+
이 질문에 앞서
해본 적이 있거나 알고 있는 사항:
mysql
、privilege
、metadata
etc.showdatabases
권한을 부여하지만 스키마 목록만 가져올 수 있습니다infomatica_schema
에 대한 모든 자금이 낭비되었습니다SELECT ON *.*
는 또 다른 답변이지만 내 리더는 이를 통해 데이터가 유출되는 것을 원하지 않습니다저희 회사에서는 감사, 보안 모니터링 또는 기타 문제를 위해 MySQL 메타데이터를 수집하도록 devops에 명령합니다(전체 내용은 자세히 모르겠습니다). 나의 리더십은 불필요한 데이터 침해가 발생하지 않을 것으로 예상합니다. 그런데, 나는 그들(아마도 감사 부서)이 메타데이터를 수집하는 구체적인 방법을 모릅니다. 내가 해야 할 일은 승인된 사용자를 생성하는 것뿐입니다.
이 문제에 대한 해결책을 찾은 것 같지만 이는 단지 해킹일 뿐 실제 해결책은 아닙니다.
https://dev.mysql.com/doc /refman/8.0/en/show-tables.html 말:
즉, SHOW TABLES를 사용할 수 없으며 INFORMATION_SCHEMA에 대한 쿼리에서 테이블을 볼 수도 없습니다(SHOW TABLES는 실제로 이러한 시스템 뷰에 대한 쿼리일 뿐이므로).
하지만 "특권 없음"이라는 표현이 저를 생각하게 만들었습니다. 사용자가 가질 수 있지만 데이터를 읽거나 쓸 수는 없는 권한이 있습니까?
https://dev.mysql.com/doc/refman /8.0/en/grant.html 말:
SHOW VIEW
어때요? 이렇게 하면 테이블이나 뷰를 쿼리할 수 없고 메타데이터만 볼 수 있습니다.그래서 시도해 봤습니다:
으아아아그런 다음 해당 사용자로 로그인하여 다음을 시도했습니다.
으아아아칼럼 등도 볼 수 있어요.
분명히 말하면 이는 뷰가 아닌 특정 테이블입니다. 그러나 내 감사자 사용자에게는 테이블에 대한 권한이 없으므로(관련 없는 권한도 포함) 테이블에 대한 메타데이터를 볼 수 있도록 하는 목적에 부합합니다.
MySQL 8.0.20에는 저장 프로시저나 함수의 본문을 볼 수 있는
SHOW ROUTINES
权限。在此之前,您需要SELECT
권한이 추가되었습니다. 그러나 귀하는 귀하의 질문에 감사관 보기 루틴을 언급하지 않았습니다.