如何加密MySQL视图源以防止查看或编辑



有没有一种方法和方法可以保护(加密(我的mysql视图的源代码,让其他人看不到这个视图是如何组装的。我知道在mssql中,创建加密为…的视图{name}是可能的。。。?

在MySQL中,每个有权使用show create view的人都可以查看您视图的代码。

这通常包括管理员,您也希望阻止他们查看。请注意,对于MSSQL,管理员也可以查看加密视图。

因此,虽然您的视图代码是不可加密的,但您可以隐藏所有相关的逻辑。你可以(至少如果管理员足够信任你,让你向他们的服务器添加他们无法验证为非恶意的代码(使用可加载函数,这意味着你可以编写c++函数,并将其以编译后的形式添加为库,例如在查询中使用。

然后,您的视图可能只列出您使用(或不使用(的表和列,而所有重要的计算都是在编译的c++代码中完成的,这可能会保护它不受大多数人的注意。例如,您的视图可能只是看起来像

create view myview as 
select myfunc1(a.col1, a.col2, a.col3, b.col1, b.col2, b.col3),
myfunc2(a.col1, a.col2, a.col3, b.col1, b.col2, b.col3)
from employee a join salary b 
on myfunc3(a.col1, a.col2, a.col3, b.col1, b.col2, b.col3)
where myfunc4(a.col1, a.col2, a.col3, b.col1, b.col2, b.col3)

这并没有透露太多。

不过请注意,为了保护sql代码,使用这样的长度可能并不常见,但更常见的是保护数据本身。尽管如此,对于您的情况来说,这可能是一个可行的解决方案。

最新更新