如何防止Informix-SQL用户查看SQL过程并更改其他内容?

时间:2011-06-27 20:27:16

标签: informix

INFORMIX-SQL 4.10.DD6(DOS):

虽然我能够通过不提供.per和.ace文件来阻止用户查看执行屏幕和ace报告的源代码,但是删除了SFORMBLD.EXE,SACEPREP.EXE,但仍然可以访问.sql过程因为ISQL 4.10的查询处理器被解释(没有办法准备/编译sql程序)。我想只提供我的应用程序的运行时版本,最终用户无法查看,修改或删除表,SQL程序等。

2 个答案:

答案 0 :(得分:2)

粗略地说,你做不到。

存储过程文本存储在sysprocbody系统目录中。如果你是愚蠢的,你可以在创建程序后删除文本(sysprocbody中存储的程序的'线性化'版本也是如此),但如果你这样做,它将永远不会被重新优化。如果删除存储过程正在使用的索引,它将停止工作。

您通常有两个或更多用户设置;一个是DBA(在SE中 - 通常是informix),然后有一个(或更好,很多)其他用户访问数据库。当然,这是DOS,所以所有权作为一个概念更加脆弱,所以也许我最好闭嘴。但是,如果DOS和ISQL + SE 4.10支持用户分离,则使用它。

答案 1 :(得分:0)

或者更好的是,删除isql.exe,dbaccess& SQLCMD!