MySql授予权限只读取不是整个表的内容

时间:2017-10-08 08:17:12

标签: mysql

我想更好地保护我的数据库,因为如果有人反编译我的程序,他将使用我的sql uid和密码并可以使用它们来窃取我的数据。只有在sql语句中有WHERE或LIKE时,如何才能将我用于程序的sql用户的权限授予SELECT和UPDATE?因为如果有人发现用户,他可以偷走我的​​整个桌子。感谢。

这是允许的:     SELECT * FROM table WHERE username =' username'

这是不允许的:     SELECT * FROM table

1 个答案:

答案 0 :(得分:1)

使用Database View的一个优点是A database view helps limit data access to specific users. You may not want a subset of sensitive data can be queryable by all users. You can use a database view to expose only non-sensitive data to a specific group of users.

所以,从理论上讲,你可能会尝试像

这样的东西
CREATE VIEW user_username AS SELECT * FROM table WHERE username = 'username'

为您的应用程序的每个用户创建单独的视图。

话虽如此,这样做是一个非常糟糕的主意。此外,如果通过反编译,用户可以访问包含所有用户的数据库,我很确定应用程序的设计必须存在错误。< / p>

但是,由于有关应用程序的细节很少,因此很难就如何应用这些问题提出建议。