>  기사  >  데이터 베이스  >  단일 테이블을 제외하고 MySQL 데이터베이스에 모든 권한을 부여하는 방법은 무엇입니까?

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-03 19:50:03868검색

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

단일 테이블을 제외하고 MySQL 데이터베이스에 모든 권한을 부여하는 방법

질문:

사용자 추구 사용자가 SELECT 권한만 가져야 하는 특정 테이블을 제외하고 데이터베이스에 대한 완전한 액세스를 허용하는 솔루션입니다.

답변:

데이터베이스에 대한 모든 권한을 부여하려는 시도에도 불구하고 그런 다음 원하는 테이블에 대해 구체적으로 SELECT 권한만 부여하거나 삽입, 업데이트 및 삭제 권한을 취소하면 오류가 지속되었습니다.

해결책:

동적 부여 문 생성:

프로세스를 단순화하려면 다음 SELECT CONCAT 쿼리를 사용하여 필요한 GRANT 문을 생성할 수 있습니다.

<code class="sql">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";</code>

단계:

  1. 데이터베이스에서 사용자의 모든 권한을 취소합니다.

    <code class="sql">REVOKE ALL PRIVILEGES ON db.* FROM user@localhost;  </code>
  2. SELECT CONCAT 쿼리를 실행하여 GRANT 문을 생성합니다.
  3. 생성된 문을 붙여넣습니다. MySQL 클라이언트에 설치하여 실행하세요.

예:

REVOKE ALL PRIVILEGES ON my_db.* FROM my_user@localhost;  

SELECT CONCAT("GRANT UPDATE ON my_db.", table_name, " TO my_user@localhost;")
FROM information_schema.TABLES
WHERE table_schema = "my_db" AND table_name <> "special_table";

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.