집 >데이터 베이스 >MySQL 튜토리얼 >특정 테이블을 제외하고 MySQL 데이터베이스의 모든 권한을 부여하는 방법은 무엇입니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!