2012-03-05 6 views
9

사용자를 생성하고 특정 데이터베이스에서 선택, 업데이트, 삽입 및 삭제할 수있는 mysql 데이터베이스가 있습니다.Mysql 사용자는 테이블을 선택할 수 있지만 뷰는 선택할 수 없습니다.

데이터베이스에 테이블과 뷰가 모두 포함되어 있습니다. 어떤 이유에서 볼 때이 생성 된 사용자는보기에서 선택하려고 할 때 다음과 같은 오류가 발생합니다.

Access denied for user 'someuser'@'%' (using password: YES) 

SELECT * FROM (`someview`) WHERE `somecolumn` = 0 

그러나 동일한 데이터베이스의 테이블에서 선택하면이 오류가 발생하지 않습니다.

이 애플리케이션을 여러 장소에 배포했으며 아마존 rds 사용을 비롯한 모든 곳에서 작동합니다. 이 특정 인스턴스는 amazon ec2에서 실행되는 mysql 서버입니다.

+0

사용자에게보기에 select를 명시 적으로 부여하면 어떻게됩니까? – Randy

답변

16

해결되었습니다. 오류 메시지는 오해의 소지가 있습니다.

원인은 더 이상 존재하지 않는보기의 정의자가 었으며보기에서 선택하는 사용자가 아닙니다.

이 사용자를 다시 작성했으며 모두 정상입니다.

0

는이 발생 가능한 원인이 있습니다

  • 그것은 당신이이 특정 테이블에 충분한 권한이없는 액세스하는 데 사용했던 사용자 수 있습니다.
  • 사용자 이름 또는 비밀번호가 일치하지 않을 수 있습니다.
  • 사용자가 지정된 호스트에 존재하지 않을 수 있습니다.
관련 문제