如何限制用户修改mysql数据库中的数据?

如何限制用户修改mysql数据库中的数据?

问题描述:

我们需要在使用MySql 5.0的客户端部署应用程序(由Java开发)WAR文件。但是我们想限制客户端(应用程序所有者,而不是网页访问者)修改数据库中的任何数据。有什么办法保护数据。客户端可以使用该应用程序,但他们不应该能够更改数据库中的任何值。怎么做?如何限制用户修改mysql数据库中的数据?

+0

@BalusC:感谢编辑并使其理解:) – Paul 2010-06-01 04:34:09

这是不可能的;如果您在客户端部署应用程序,他将拥有凭据,并且将能够登录到MySQL数据库,并且他是应用程序。因此他可以对应用程序可以进行的任何数据库更改。

解决这个问题的唯一方法就是在客户端和你的MySQL数据库之间建立一个层,并确保你控制这个,这样它才可能做出'合法'的改变。

+0

如果凭证是针对没有修改权限的用户呢?或者只使用某些存储过程? – Konerak 2010-05-31 12:16:56

+0

客户端和MySQL数据库之间必须做什么。提及清楚是否可能! – Paul 2010-05-31 12:25:48

+1

如果证书是针对没有修改权限的用户的,则应用程序(和存储过程)也不能进行更改。这与问题相反。 – wump 2010-05-31 12:26:50

+0

@hgulyan:我正在使用MySql 5.0。但是你的链接指向sql-server。对此有任何建议。 – Paul 2010-05-31 11:56:37

+1

@保罗:对不起,我用新的链接编辑了我的答案。 – hgulyan 2010-05-31 11:58:34

+0

我用新的链接和示例更新了我的答案。 – hgulyan 2010-05-31 12:15:53

只需编写相应的代码,使用户不会有任何机会来修改数据库?即该代码不会执行任何INSERTUPDATE和/或基于登录/角色控制访问。

老实说,我真的不希望这里的任何问题,或者代码必须倾向于SQL injectionattacks

更新:上面的答案实际上是无关的,因为问题是澄清的。转入社区Wiki。