【发布时间】:2013-07-02 18:50:13
【问题描述】:
我有一个应用程序,许多用户可以通过该应用程序访问 MySQL 数据库。现在我很困惑的是我如何管理用户。在我看来,有两种不同类型的用户——APPLICATION 用户和 DATABASE 用户。这些应该是相同的,还是不同的?
让我来说明一下。这就是我现在的工作方式:
当用户登录应用程序时,单个数据库帐户登录 MySQL 并检查应用程序用户名是否存在,并比较密码哈希值。这些都存储在 MySQL 的 App Users 表中。所有这些用户都使用同一个 MySQL 帐户来访问数据库。
应用程序中的每个用户也应该是不同的 MySQL 用户吗?
【问题讨论】:
-
不,我认为这意味着您将应用程序用户凭据从应用程序登录,当您使用数据库用户凭据直接登录到 phpMyAdmin 或您正在使用的任何东西时,不确定虽然
-
您想单独管理“许多”MySQL 帐户吗?我不会。通常,控制所有数据库访问的应用程序本身将充当门卫——这与单个用户被授予直接访问权限不同!话虽如此,请考虑可能存在一种或两种不同类型的帐户,它们对可以更新/删除的内容有不同的限制(即普通用户和“数据管理员”)——区分这些帐户是有意义的甚至可以稍微提高安全性。
-
目前我只有两个类别,普通和root。 Root 可以创建新的应用用户、删除表等。普通只能选择、插入或更新。
-
@Amoeba 这听起来不错!将它们作为两个不同的 SQL 用户/角色/模式加上强大的 DAL 听起来是一种可靠的方法。但是,不要公开可以运行 DDL 的帐户 - 可以是 数据 管理员而无需更改架构(这是开发人员/SA 工作)。跨度>
标签: database web-applications account