每次使用不同的用户连接到数据库

时间:2016-12-09 18:57:53

标签: mysql privileges

我试图增加网站的安全性,实现我能做到的最好的安全系统。我知道创建具有不同权限的不同用户会很好,但是为每个功能创建一个用户会很有用吗?

我更好地解释一下:我为dbSelect()dbInsert()dbUpdate()等不同操作创建了不同的功能。在dbSelect(),SELECT特权的情况下,增加系统的安全性使得每个函数连接到 INSERT特权的MySQL用户dbInsert()等的情况?

当然,在一个页面中,可能存在所有这三个函数,连接到数据库的SELECT也是如此,然后关闭连接以打开INSERT,然后SELECT等等再次影响db绩效条款?

1 个答案:

答案 0 :(得分:2)

(这个问题可能会被关闭,因为这是一个意见问题。但是,我有一个意见。)

复杂的应用程序使用多个不同的数据库用户是个好主意。

但是按照你的建议行事是没有意义的:让一个数据库用户做SELECT,另一个做INSERT等,只是因为这两个查询可以在实践中结合起来。

有什么意义?

拥有三个用户角色:

  1. 将其称为" webapp",代表您的网络应用的用户用于日常日常操作。它应该能够选择/插入/更新并可能从操作表中删除行。

  2. 将其称为" webadmin",您的网络应用会使用它来添加和删除用户等内容。此用户将具有插入/更新,并可能在更慢的更改表(如用户)上删除privs。它的使用率比第一个帐户少得多。

  3. 称之为" dba"或其他东西,永远不会被网络应用程序本身使用。登录的人员使用它来对数据库进行更改。它具有所有权限,包括创建,截断和删除表,索引,过程。你从不输入" dba"的密码。帐户进入您的网络应用程序的代码或配置文件。

  4. 您可能还有另外两个帐户:

    1. "计费"只会由您的网络应用的结算部分使用,并且可以访问包含您保留的任何用户结算信息的表格。

    2. "报告"会有点像" dba"。它几乎可以读取所有表(可能不是计费表),但不能读取/更新/删除。

    3. 诀窍是这样:让你的大多数网络应用程序使用最少特权的#34; webapp"帐户,仅在需要时使用提升的权限帐户。