NOTICE

mysql view definer 수정

Date : 2014. 11. 5. 19:26 Category : Programming/SQL

A 서버에서 디비를 그대로 백업해서 B 서버로 옮겨 왔다.

하필이면 재수없게 view가 있다.

definer가 A 서버에서 쓰던 계정(test@localhost)이 등록되어 있었다.

그래서 지금 B 서버에서 testtest@localhost 계정으로는 view를 select 하려고 하면 권한이 없다고만 뜬다.


view 정보를 보면 된다.

봐야 할 게 view 이름이랑 view_definition, definer 총 세 가지다.

view 이름은 뭐 알다시피 일반 테이블 이름이랑 같은 거고 view_definition이라고 하는 건 안에 쿼리가 들어 있다.

그리고 definer는 이 view를 사용할 수 있는 유저라 해야 하나?


[사용 방법]

ALTER DEFINER = '계정'@'localhost' VIEW 뷰 이름 AS 뷰 생성 쿼리

ALTER DEFINER = 'testtest'@'localhost' VIEW 뷰 이름 AS SELECT * FROM ~~~~~


AS 다음에 실제로 들어가는 쿼리문이니 저건 조심해서 넣자.