仅允许为具有许多权限的MySQL用户选择

时间:2012-08-23 21:43:41

标签: mysql sql database

我正在创建一个数据库应用程序,它提供任何数据库的动态视图。对于安全功能,我想只允许选择。这可以通过检查第一个单词是否被选择来完成吗?我知道我应该有另一个创建的权限有限的用户,但我试图避免这种情况,以便我的应用程序易于使用。

基本上,有人可以给我一个示例查询SELECT是第一个单词但实际上可以更改数据吗?

2 个答案:

答案 0 :(得分:2)

  

有人可以给我一个例子查询SELECT是第一个单词的地方   但实际上可以改变数据吗?

没有这样的事情。 SELECT仅用于数据读取。 当然,除非您正在选择改变数据的功能。见@ spencer7593答案。

但是,您可能希望检查行阻塞SELECT命令并避免它们,因为您似乎会将数据库打开给第三方。

进一步阅读:http://dev.mysql.com/doc/refman/5.0/en/innodb-locking-reads.html

答案 1 :(得分:1)

这是一个可以修改数据的SELECT语句的例子(它是一个模糊的角落案例,但它表明 IS 可能导致使用SELECT修改数据)

SELECT udf_myfunction()

鉴于,例如:

CREATE FUNCTION udf_myfunction() RETURNS INT
READS SQL DATA
BEGIN
   DELETE FROM dummy_table1;
   UPDATE dummy_table2 SET mycol = CONCAT(mycol,SUBSTR(mycol,1,1));
   RETURN 0;
END

(当然,用户需要获得该功能的EXECUTE权限才能执行该功能。)