MySQL의 특정 테이블을 제외한 데이터베이스에 권한 부여
많은 데이터베이스에서는 다양한 사용자에게 서로 다른 수준의 권한을 부여해야 하는 경우가 많습니다. 일부 사용자는 데이터베이스에 대한 완전한 제어가 필요할 수 있지만 다른 사용자는 특정 테이블에 대한 제한된 권한만 필요할 수 있습니다. MySQL에서는 사용자에게 포괄적인 권한을 할당하는 것이 간단할 수 있습니다. 그러나 특정 테이블을 제외한 모든 권한을 할당하는 것은 어려울 수 있습니다.
초기 시도 실패
사용자 문의에서 언급했듯이 "db_name"을 사용하여 모든 권한을 부여하려고 시도하는 경우 .*"를 선택한 다음 원하는 테이블에 대해 선택적으로 SELECT 권한을 부여해도 "모든" 권한이 재정의되지 않습니다. 또한, 모든 권한을 부여한 후 insert, update, delete 권한을 취소하면 특정 테이블에 대한 부여 규칙이 없기 때문에 오류가 발생한다.
개별 권한 부여
읽기 전용 테이블을 제외한 데이터베이스의 각 테이블에 개별적으로 모든 권한을 부여하는 것이 지루해 보일 수 있지만 현재로서는 가장 직접적이고 안정적인 방법입니다. 이 접근 방식을 사용하면 사용자에게 특정 테이블에 대한 업데이트 권한이 없습니다.
더 쉬운 방법이 있습니까?
사용자는 더 간단한 솔루션에 대한 희망을 표현하며 실제로 특정 테이블을 제외하고 모든 권한을 부여하는 편리함을 결합한 기술:
모든 권한 취소:
REVOKE ALL PRIVILEGES ON db.* FROM user@localhost;
Information_schema를 사용하여 GRANT 문 생성:
SELECT CONCAT("GRANT UPDATE ON db.", table_name, " TO user@localhost;") FROM information_schema.TABLES WHERE table_schema = "YourDB" AND table_name <> "table_to_skip";
이 접근 방식은 각 테이블에 개별적으로 권한을 수동으로 부여하는 것보다 더 빠르고 동적인 대안을 제공합니다.
위 내용은 특정 테이블을 제외하고 MySQL 데이터베이스의 모든 권한을 부여하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!