1
mysql 5.5를 사용하여 사용자, 뷰를 생성하고 해당 뷰에 대한 선택 권한을 부여하는 스크립트를 작성하려고합니다. 여기 내가 지금까지 가지고있는 것이있다.이름에 사용자 변수가있는 mysql 뷰를 만드는 방법
set @type_id := 1;
set @username := 'somecompany';
set @password := 'company1234';
set @prefix := 'somecompany';
CREATE OR REPLACE VIEW CONCAT(@prefix, '_report') AS
SELECT * FROM my_table
WHERE type_id = @type_id;
보기 이름의 문자열을 찾고 있지 않으므로 작동하지 않습니다. 나는 문을 사용하여 사용자를 만들기 위해이 문제를 가지고 :
INSERT INTO mysql.user (Host, User, Password) VALUES ('%', @username, PASSWORD(@password));
내가 뷰를 생성하고 내가 만든 사용자에게 그 뷰를 선택 부여하는 데 사용할 수있는 비슷한 트릭이 있습니까?
http://dev.mysql.com/doc/refman/5.5/en/sql-syntax-prepared- statements.html 5.5 사용자 설명서에는 준비된 명령문을 사용할 수있는 쿼리 목록이 있습니다. 뷰를 만들 수있는 준비된 문과 함께 사용할 수 없으며 워크 벤치에서 나에게 적합하지 않습니다. –
예, 정말로 CREATE VIEW는 여전히 지원되지 않습니다 ;-(INSERT INTO를 사용하여 새 사용자를 추가하거나 CREATE USER 문을 사용할 수 있습니다. 또 다른 방법은 응용 프로그램에서 수행하는 것입니다 .. – Devart
그만 !! 나는 매우 intresting 것을 발견했습니다. CREATE VIEW는 prepared statement와 함께 사용할 수 있는데, MySQL 5.5에서 처리 했으므로 아무 것도 할 수 없다. – Devart