> 데이터 베이스 > MySQL 튜토리얼 > 특정 테이블을 제외하고 MySQL 데이터베이스의 모든 권한을 부여하는 방법은 무엇입니까?

특정 테이블을 제외하고 MySQL 데이터베이스의 모든 권한을 부여하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-11-04 05:20:29
원래의
1071명이 탐색했습니다.

How to Grant All Privileges in a MySQL Database Except for a Specific Table?

MySQL의 특정 테이블을 제외한 데이터베이스에 권한 부여

많은 데이터베이스에서는 다양한 사용자에게 서로 다른 수준의 권한을 부여해야 하는 경우가 많습니다. 일부 사용자는 데이터베이스에 대한 완전한 제어가 필요할 수 있지만 다른 사용자는 특정 테이블에 대한 제한된 권한만 필요할 수 있습니다. MySQL에서는 사용자에게 포괄적인 권한을 할당하는 것이 간단할 수 있습니다. 그러나 특정 테이블을 제외한 모든 권한을 할당하는 것은 어려울 수 있습니다.

초기 시도 실패

사용자 문의에서 언급했듯이 "db_name"을 사용하여 모든 권한을 부여하려고 시도하는 경우 .*"를 선택한 다음 원하는 테이블에 대해 선택적으로 SELECT 권한을 부여해도 "모든" 권한이 재정의되지 않습니다. 또한, 모든 권한을 부여한 후 insert, update, delete 권한을 취소하면 특정 테이블에 대한 부여 규칙이 없기 때문에 오류가 발생한다.

개별 권한 부여

읽기 전용 테이블을 제외한 데이터베이스의 각 테이블에 개별적으로 모든 권한을 부여하는 것이 지루해 보일 수 있지만 현재로서는 가장 직접적이고 안정적인 방법입니다. 이 접근 방식을 사용하면 사용자에게 특정 테이블에 대한 업데이트 권한이 없습니다.

더 쉬운 방법이 있습니까?

사용자는 더 간단한 솔루션에 대한 희망을 표현하며 실제로 특정 테이블을 제외하고 모든 권한을 부여하는 편리함을 결합한 기술:

  1. 모든 권한 취소:

    REVOKE ALL PRIVILEGES ON db.* FROM user@localhost;
    로그인 후 복사
  2. 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";
    로그인 후 복사
  3. 결과 복사 및 실행
    쿼리 결과를 복사하여 실행 지정된 테이블을 제외한 모든 테이블에 업데이트 권한을 부여합니다.

이 접근 방식은 각 테이블에 개별적으로 권한을 수동으로 부여하는 것보다 더 빠르고 동적인 대안을 제공합니다.

위 내용은 특정 테이블을 제외하고 MySQL 데이터베이스의 모든 권한을 부여하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿