MyDac Component의  TMyStoredProc를 이용하여 Mysql의 Stored Procedure를 호출하는 과정에서 아래와 같은 오류가 발생하였다.

#42000SELECT command denied to user 'dbuser'@'serverip' for table 'proc'

Mysql을 설치하고 권한을 설정하면서 Proc Table의 Select 권한이 없어서,
Procedure 목록을 가져오지 못해 발생하는 오류로써, 권한을 부여함으로써 해결되었다.

참고 : http://dev.mysql.com/doc/refman/5.0/en/grant.html

1. 프로시저 및 함수 사용과 관련한 권한 설정
grant CREATE ROUTINE, ALTER ROUTINE, DROP ROUTINE, EXECUTE ON *.* TO 'dbname'@'hostip';
※ 프로시저 관련 작업이 안돼서 추가 했음.

2. 뷰 보기 권한 설정
grant SHOW VIEW ON *.* TO 'pandora'@hostip';
※ 뷰를 사용하고 있는데 권한이 없어 문제 발생했었음.

3. mysql database에서 proc select 권한 설정
grant SELECT ON *.* TO 'hostname'@'hostip';
※ Delphi 컴퍼넌트 MyDAC에서 mysql.proc를 select 하는 것 같음. 그런데 권한이 없어 에러 발생
#42000SELECT command denied to user 'dbname'@'hostip' for table 'proc'

4. 함수 생성과 관련한 설정
 참고 : http://mirrors-r-us.net/doc/refman/5.0/en/stored-procedure-logging.html
처리 :
1) SET GLOBAL log_bin_trust_function_creators = 1;
2) my.cnf 에서 log_bin_trust_function_creators = 1; 추가

※ 관련 에러
Error Code : 1419
You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
(0 ms taken)
2007/12/27 21:02 2007/12/27 21:02
포스팅이 유익 하셨다면 RSS 구독을 신청하세요

Trackback Address >> http://dolba.net/tt/k2club/trackback/1671

  1. Rhio.kim 2007/12/28 00:12  address  modify / delete  reply

    어찌 이런일이 ^-^ 해결하셨다니 다행요..