2011-08-22 6 views
4

나는 MySQL 사용자 (InnoDB 엔진)를 가지고 있으며 그것을 부여 할 수있는 안전한 권한이 무엇인지 궁금합니다. 현재 내가 허용 한 그것의 특정 데이터베이스와 이러한 권한에 액세스 할 수있는 권한이 : 그것은 이노을 이후 내가 명시 적으로 사용자에게 LOCK 테이블 권한을 부여해야하는 경우InnoDB MySQL 사용자에게 어떤 권한을 부여해야합니까?

SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER, CREATE TEMPORARY TABLES 

을하지만 궁금 해서요? 또한 나는 그것을 위해 임시 테이블을 생성 할 권한이 필요한지 여부를 확신하지 못한다. 어떤 권한을 부여해야하는지 알아 내려면 여기로 도와 주시겠습니까? Hibernate는이 사용자에 대한 액세스 권한을 가지므로 올바르게 작동하기에 충분한 것이 무엇인지 궁금합니다.

답변

3

최소 사용자에게 시스템 사용 권한이 있어야합니다.

테스트를 위해 반드시 grant all on the database을 사용하십시오.

잠금 가지가 아래로
는 그러나 생산에만 테이블에 select 부여해야 생산 시간을 온다.
그랜트 insertupdate 테이블에 사용자가 실제로 데이터를 추가하거나 변경해야합니다. Create
는 사용자가 필요로 거의 절대 특권이다. (데이터베이스 설계를 원하지 않는 한 :).
, alter의 경우 사용자는이 권한을 사용하지 않아도됩니다.
create temp tables 일 수 있습니다. IF 앱에서 임시 테이블을 만듭니다.

+0

나에게 맞는 소리! :) 감사! – Rihards

+3

성능에 신경 쓰면 테이블 수준의 권한을 부여하는 것은 좋지 않습니다. 일반적으로 세션 당 한 번만 검사되는 데이터베이스 수준 권한과 달리 MySQL은 모든 쿼리에 대해이를 확인해야합니다. – sanmai

관련 문제