2012-04-10 4 views
18

사용자가 데이터베이스의 저장 프로 시저를 실행할 수 있도록 허용하지 않고 MySQL 데이터베이스의 저장 프로 시저 수준에서 저장 프로 시저를 실행할 수있는 권한을 사용자에게 부여하려고합니다. 나는 다음과 같은 코드를 실행하려고했다 :MySQL의 저장 프로 시저 권한

GRANT EXECUTE ON myDB.spName TO 'TestUser'@'localhost'; 

을하지만 난 다음 오류가 계속 :

Illegal GRANT/REVOKE command, please consult the manual to see which privileges can be used.

나는 다음에 변경 시도 :

GRANT EXECUTE ON PROCEDURE myDB.spName TO 'TestUser'@'localhost'; 

그리고 내가 얻을 다른 오류 진술 :

Cant find any matching rows in the user table.

내가 어디로 잘못 가고 있는지 혼란 스럽습니까?

또한 MySQL Workbench에서 GUI를 통해 저장 프로 시저 수준에서 사용 권한을 부여 할 수있는 방법이없는 것 같습니다. 이게 맞습니까? 아니면 제가 빠진 것이 있습니까?

미리 감사드립니다.

답변

27

두 번째 시도는 앞으로 나아갈 수있는 올바른 방법입니다.

GRANT EXECUTE ON PROCEDURE myDB.spName TO 'TestUser'@'localhost'; 

하지만 경우 g

체크를 작동하지

a) 귀하가 (사용자가있는이 모든 명령을 실행) 부여 권한 [즉 WITH GRANT 옵션] 있습니다. 당신이 root라면 그 사람은

입니다. b) 실행 권한을 부여한 사용자가 있는지 확인합니다. e.

select user from mysql.user where user like 'test%'; 

새로운 사용자를 추가하지 않을 경우 g

는 예컨대

CREATE USER 'TestUser'@'localhost' IDENTIFIED BY 'passwordxxxx'; 
#depending on you needs 
GRANT SELECT,DELETE,UPDATE PRIVILEGES ON myDb.* TO 'TestUser'@'localhost'; 

희망이, 내가 같은 문제가 발생했다 MySQL의 워크 벤치에 대한 질문의 다른 부분에 대답하기 :

+0

임 루트로 로그인하고 코드를 실행할 때 사용자가 존재한다 : mysql 데이터베이스에서 user에서 사용자 테스트 % '와 같은 사용자 선택을; 하지만 난 여전히 같은 오류가 나타납니다. – Olly

+0

제안 된대로 새 사용자를 추가하고 그 사용자에게 실행 권한을 부여하십시오. – sakhunzai

+2

한번 더 시도하십시오. 'GRANT EXECUTE ON PROCEDURE myDB.spName TO'TestUser '@'localhost ' 은'password '로 식별되며,' – sakhunzai

1

를 도움이 될 수 있습니다. 그러나 실험을 통해 역할을 생성하고 맨 아래의 권한 탭을 열면 모델 개요에서 객체 상자로 루틴을 드래그 할 수 있음을 발견했습니다. 여기에서 새로 추가 된 개체를 클릭하고 해당 역할에 대해 원하는 사용 권한을 추가하십시오.

희망하는 데 도움이 :