> 데이터 베이스 > MySQL 튜토리얼 > 필요한 권한이 있음에도 불구하고 MySQL 권한을 부여할 때 '액세스 거부' 오류가 발생하는 이유는 무엇입니까?

필요한 권한이 있음에도 불구하고 MySQL 권한을 부여할 때 '액세스 거부' 오류가 발생하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-01 00:49:15
원래의
543명이 탐색했습니다.

Why Do I Get

액세스 거부 오류 없이 권한 부여

권한을 부여하려고 하면 MySQL 사용자에게 "'root' 사용자에 대한 액세스가 거부되었습니다."라는 오류가 발생할 수 있습니다. @'localhost'(비밀번호 사용: YES)." 사용자에게 필요한 권한이 있는 것처럼 보일 수 있으므로 이는 혼란스러울 수 있습니다.

권한 확인

사용자에게 적절한 권한이 있는지 확인하려면 다음 명령을 실행하세요. :

SELECT user();
SELECT current_user();
SHOW GRANTS FOR 'root'@'localhost';
SELECT * FROM mysql.user WHERE User='root';
로그인 후 복사

이 명령은 사용자가 실제로 root@localhost이고 필요한 권한을 가지고 있는지 확인해야 합니다. 포함:

  • SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER
  • 생성 및 조작 테이블, 뷰 및 루틴
  • 다른 사용자에게 권한 부여 사용자

문제: 특정 테이블에 대한 권한 부여

이러한 권한이 있음에도 불구하고 특정 테이블에 대한 권한을 부여하려고 하면 오류가 발생할 수 있습니다.

GRANT ALL PRIVILEGES ON *.* TO 'steves'@'[hostname].com' IDENTIFIED BY '[OBSCURED]' WITH GRANT OPTION;
로그인 후 복사

이는 mysql.users 테이블을 제외한 모든 사용자가 접근할 수 없는 것으로 간주되기 때문입니다. root.

솔루션: 모든 데이터베이스에 권한 부여

이 문제를 해결하려면 mysql.users를 제외한 모든 데이터베이스에 권한을 부여하는 다음 명령을 사용하십시오.

GRANT ALL PRIVILEGES ON `%`.* TO '[user]'@'[hostname]' IDENTIFIED BY '[password]' WITH GRANT OPTION;
로그인 후 복사

.* 대신 %.를 사용하면 mysql.users 테이블을 제외한 모든 데이터베이스가 포함됩니다. 이렇게 하면 액세스 거부 오류가 발생하지 않고 권한이 성공적으로 부여됩니다.

위 내용은 필요한 권한이 있음에도 불구하고 MySQL 권한을 부여할 때 '액세스 거부' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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