<![CDATA[Latest posts for the topic "hỏi về mySQL (phần routine - access control)"]]> /hvaonline/posts/list/8.html JForum - http://www.jforum.net hỏi về mySQL (phần routine - access control) /hvaonline/posts/list/42036.html#261936 /hvaonline/posts/list/42036.html#261936 GMT hỏi về mySQL (phần routine - access control) /hvaonline/posts/list/42036.html#262005 /hvaonline/posts/list/42036.html#262005 GMT hỏi về mySQL (phần routine - access control) DELIMITER $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `temp`() BEGIN declare user varchar(45); set userName = 'vnpt'; USE mydata; CREATE user userName@'localhost'; grant select on mydata.products to userName@'localhost'; END thì nó báo lỗi biến userName. - Khi mình có tạo một PROCEDURE CREATE DEFINER=`root`@`localhost` PROCEDURE `User_checkLogin`( in userName varchar(45), in passWord varchar(500) ) BEGIN declare userID INTEGER; declare acount varchar(100); SET userID =0; SELECT User_ID into userID FROM mydata.users WHERE (User_Name = userName) and (User_Password = passWord); IF (userID != 0) THEN GRANT SELECT ON mydata.products to userName@localhost; SELECT * FROM users WHERE (User_ID = userID); ELSE SELECT null; END IF; END Chuơng trình chạy với 2 tham số đầu vào userName = 'vnpt' và pass = '2' không báo lỗi gì, đăng nhập thành công. Tuy nhiên, khi mình tác động (action 1): define("DB_DSN","mysql:host=localhost; dbname=mydata;charset=UTF-8" ); define("DB_USERNAME", "vnpt" ); define("DB_PASSWORD", "" ); $conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8" )); $sql = "Select * From products"; $st = $conn->prepare($sql); $st->execute(); Thì nó thông báo lỗi Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000] [1044] Access denied for user 'vnpt'@'localhost' to database 'mydata'' Mình nghĩ, có phải lúc mình TO userName@'localhost' sẽ khác với việc ta thực hiện 'vnpt'@'localhost' (mà mình dùng lệnh này thì lại thành công với action 1)]]> /hvaonline/posts/list/42036.html#262169 /hvaonline/posts/list/42036.html#262169 GMT