Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从web应用程序访问数据库的最佳实践_Mysql_Sql_Database_Web - Fatal编程技术网

Mysql 从web应用程序访问数据库的最佳实践

Mysql 从web应用程序访问数据库的最佳实践,mysql,sql,database,web,Mysql,Sql,Database,Web,我的问题可能是错误的,但我对设计访问MySQL数据库的web应用程序表示怀疑 下面的对话发生在我和我的朋友之间 我的朋友要求我为系统的每个用户角色创建单独的用户帐户,并要求我仅对管理员用户启用删除选项 +-----------+-----------------+ |User role | Db credential | +-----------+-----------------+ |Admin | Admin |

我的问题可能是错误的,但我对设计访问MySQL数据库的web应用程序表示怀疑

下面的对话发生在我和我的朋友之间

我的朋友要求我为系统的每个用户角色创建单独的用户帐户,并要求我仅对管理员用户启用删除选项

+-----------+-----------------+                 
|User role  | Db credential   |
+-----------+-----------------+     
|Admin      | Admin           |   
+-----------+-----------------+       
|User       | User            |        
+-----------+-----------------+
我说过,我们只能有一个用户帐户来访问db,所有其他事情都可以通过授权原则来完成,我引用“在开发web应用程序时,我们可以为每个开发人员使用多个db用户帐户,但在部署web应用程序时,我们可能只为部署的应用程序使用一个用户帐户”

我的朋友和我争论说,为了避免SQL注入,我们可以像他说的那样设计系统。我认为这是完全错误的论据。


请帮助我在设计web应用程序时找到最佳实践,特别是使用用户角色和db用户凭据。我被我的朋友搞糊涂了。

通常你只有一个mysql帐户可以访问数据库,一个应用程序的多个帐户(为了提高安全性)对我来说毫无意义,因为如果你的系统受到破坏,所有登录都会泄露,因为它们需要在你的应用程序代码中定义

另一方面,您为拥有多个mysql帐户的攻击者提供了更多的攻击机会

那么,在一个应用程序中使用多个帐户还剩下什么呢?啊,访问针对数据库的用户操作(限制没有编辑权限的用户a等)

用户应该对您的数据库执行的操作(删除内容a、编辑内容b)应该由您的应用程序逻辑来处理,当然最好限制每个用户的操作访问权限(例如不允许写入outfile等),但不要处理这样简单的事情。在我看来,成本(每个用户有多个数据连接)比一个好的编程逻辑要高得多


因此,在多个帐户毫无意义的情况下增加安全性,使用一个具有强密码的帐户,并让简单的操作通过编程逻辑进行编辑、删除等操作。

您的问题更多的是关于开发还是用户方面(如生产),以使用更多的db用户?
+---------+-------------+  
|User role|Db credential|  
+---------+-------------+  
|Admin    | Only one    |  
+---------+user account +  
|User     | for web app |  
+---------+-------------+