我们有一个MySQL数据库,并希望在数据库级别实现行级安全性。我一直在玩PostgreSQL的Veil插件,就像它一样。是否有类似于MySQL的东西,所以我们不必转换为PostgreSQL?
更新
我们不会使用面纱或其等效的MySQL来进行身份验证,而是确定要为已经过身份验证的用户显示哪些行。用户权限基于关系上下文。如果不考虑我们自己的插件,那么视图在用户权限基于具有100k行的表上的多个连接的位置有多高效?最终目标是能够基于个人用户对100k> 100k的表中的行的特权向两个不同的用户显示不同的数据。使用相同查询的行。
答案 0 :(得分:1)
这不是一个常见的功能,主要是因为在大多数情况下,这不是这个安全系统的正确位置。如果您可以提供更多详细信息来确定您正在尝试防御的确切攻击,那么可能有一个更合适的安全系统来满足此要求。
通常,您希望根据应用程序指示的访问控制列表实现来限制特定用户。在某些情况下,您希望两个应用程序共享相同的数据,并且您希望限制其中一个应用程序受到危害的影响。在这种情况下,您可以将其拆分并为数据库提供1个应用程序读取访问权限,而另一个具有写入或读取/写入。像这样使用数据库本机访问控制可以在应用程序之间安全地传递信息。防御的主要威胁是,如果一个应用程序由于像 SQL注入这样的漏洞而受到攻击,那么这两个数据库也会受到攻击。
还有sepgsql也适用于PostgreSQL。这个安全的系统可以用于更好地将应用程序与一些相关数据分离,但这是一个非常不寻常的软件要求。一般来说,应避免使用这种安全的系统,以支持其他更常见和经过验证的系统。