如何限制用户修改mysql数据库中的数据?
我们需要在使用MySql 5.0的客户端部署应用程序(由Java开发)WAR文件。但是我们想限制客户端(应用程序所有者,而不是网页访问者)修改数据库中的任何数据。有什么办法保护数据。客户端可以使用该应用程序,但他们不应该能够更改数据库中的任何值。怎么做?如何限制用户修改mysql数据库中的数据?
这是不可能的;如果您在客户端部署应用程序,他将拥有凭据,并且将能够登录到MySQL数据库,并且他是应用程序。因此他可以对应用程序可以进行的任何数据库更改。
解决这个问题的唯一方法就是在客户端和你的MySQL数据库之间建立一个层,并确保你控制这个,这样它才可能做出'合法'的改变。
管理角色/用户权限
创建SQL用户(你应该已经有一个),这将有只选择许可。因此,它会像
GRANT SELECT ON db_base.* TO [email protected]'localhost' IDENTIFIED BY 'db_passwd';
http://kb.mediatemple.net/questions/788/HOWTO:+GRANT+privileges+in+MySQL
http://blog.wl0.org/2010/01/managing-mysql-grants/
http://www.ntchosting.com/mysql/grant.html
检查下面进一步阅读
为MySQL
0123链接Best Practice for Designing User Roles and Permission System?
http://www.devshed.com/c/a/MySQL/MySQL-User-Account-Management/
Can't set permissions on MySQL user
http://www.aquafold.com/d7/docs/BD5C99E4-3B55-C812-8318-6338A9A89ED9.html
为SQL Server。
http://www.mssqlcity.com/Articles/Adm/SQL70Roles.htm
http://www.sql-server-performance.com/articles/dba/object_permission_scripts_p1.aspx
https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-1061781.html
只需编写相应的代码,使用户不会有任何机会来修改数据库?即该代码不会执行任何INSERT
或UPDATE
和/或基于登录/角色控制访问。
老实说,我真的不希望这里的任何问题,或者代码必须倾向于SQL injectionattacks。
更新:上面的答案实际上是无关的,因为问题是澄清的。转入社区Wiki。
@BalusC:感谢编辑并使其理解:) – Paul 2010-06-01 04:34:09