mysql_real_escape_string()需要哪些MySQL权限?

4

使用mysql_real_escape_string()需要哪些MySQL权限?

我想创建一个具有最小权限的数据库用户,专门用于使用mres()...


你在做这个的时候遇到了什么问题吗?因为它应该没问题。 - Centurion
1
在调用mysql_real_escape_string()函数之前,您必须先连接到mysql(mysql_connect())。 - Codler
@ Codler,同意的话,否则你可以使用addshashes()。 - Centurion
除了 addslashes() 函数不能考虑到服务器版本和需要转义的特殊字符之外。这就是为什么我们甚至需要一个 mysql_real_escape_string() 函数... 当然,它还需要连接,但问题是需要哪些权限(如果您需要像存储过程或函数一样的 execute 权限等)。 - ircmaxell
这个关于编程的问题有点无意义。你为什么需要使用mres?为什么不使用addslashes?你需要这样一个用户吗? - Your Common Sense
显示剩余2条评论
2个回答

5

这是在客户端完成的,所以唯一需要的权限是使用权限(因为你只需要连接,甚至不需要读取权限)...


“USAGE” 权限在 MySQL 中主要代表“无特权”。 - Knowledge Craving
1
实际上不是这样的。Usage 允许您登录并选择数据库。您不能做其他任何事情,但您可以获得访问权限。而且由于 mysql_real_escape_string 仅需要一个连接,所以您只需要访问权限。因此,是的,对于 mysql_real_escape_string 来说,USAGE 是足够的。当然,您不能做其他任何事情,但您可以做原始问题要求的事情... - ircmaxell
1
没有人想过为什么会有这样的问题。我希望在SO上有一种习惯,一种传统...每10个答案至少思考一次... - Your Common Sense

-1

编辑,根据“ircmaxell”的评论:-
您需要设置以下权限/特权:

  1. 插入
  2. 选择
  3. 更新
  4. 创建临时表

以上特权是应该为MySQL的每个数据库的任何用户帐户提供的最低特权。

如果管理员想要创建一个基本的简单帐户,其中用户只需要查看/选择记录,则只需要“SELECT”权限。不需要给予其他权限(关于“ircmaxell”的评论)

希望这有所帮助。


1
不要为生产账户添加ALTERINDEX权限。如果你的应用程序动态修改表格,你需要认真考虑这个问题...只有管理员(以及内部管理应用程序)才应该拥有这两个权限... - ircmaxell
@ircmaxell - 感谢提供的信息,我会相应地修改我的回答。 - Knowledge Craving
1
移除-1...否则这是一个很好的权限基线(当然取决于需要。您可能希望某些帐户仅具有“SELECT”权限)... - ircmaxell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接