关于如何执行查询文件的问题

fyming 2011-03-25 06:19:07
给客户更新数据库的时候,以前是用一份已做好的查询文件到客户那儿的服务器上执行一下。如果把做好的.sql文件交给客户让客户自己在服务器上执行,又不让客户看到SQL源码。

有没有办法把这个SQL查询文件生成一个EXE文件或者其他什么方法都好?只要既能执行我已做好的.SQL查询达到更新数据库的目的,又避免SQL源码被看到就好。

如果有类似的工具软件,也请介绍一下
...全文
181 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xrongzhen 2011-03-25
  • 打赏
  • 举报
回复
或者直接把.sql文件内容写入exe程序中,不过那样维护起来比较麻烦
xrongzhen 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 fyming 的回复:]
给客户更新数据库的时候,以前是用一份已做好的查询文件到客户那儿的服务器上执行一下。如果把做好的.sql文件交给客户让客户自己在服务器上执行,又不让客户看到SQL源码。

有没有办法把这个SQL查询文件生成一个EXE文件或者其他什么方法都好?只要既能执行我已做好的.SQL查询达到更新数据库的目的,又避免SQL源码被看到就好。

如果有类似的工具软件,也请介绍一下
[/Quote]

把文件内容加密 写个程序专门用来解密、执行Sql语句
快溜 2011-03-25
  • 打赏
  • 举报
回复
--WITH ENCRYPTION 对用户隐藏存储过程的文本
create proc pr_name with encryption
as
--小F-- 2011-03-25
  • 打赏
  • 举报
回复
用 .NET写成DLL文件 封装了打包然后生成个 发布版
生成 .EXE执行文件

这个在网上查 一下 比较 容易
好帅的一条鱼 2011-03-25
  • 打赏
  • 举报
回复
恩。编一个小的应用程序就好了
999朵玫瑰 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wxf163 的回复:]
基本就是让客户选择IP 选择数据库 输入数据库登录账号 密码

然后你再执行一个SqlCommand cmd = new SqlCommand(sql, oCon)
基本就差不多了

玩的再高深一点儿,那句读取把脚本写到 sqlite里

c#读取sqlite 。这个一般人破解不了 呵呵
[/Quote]up
王向飞 2011-03-25
  • 打赏
  • 举报
回复
基本就是让客户选择IP 选择数据库 输入数据库登录账号 密码

然后你再执行一个SqlCommand cmd = new SqlCommand(sql, oCon)
基本就差不多了

玩的再高深一点儿,那句读取把脚本写到 sqlite里

c#读取sqlite 。这个一般人破解不了 呵呵
王向飞 2011-03-25
  • 打赏
  • 举报
回复
那你就自己写个呗

没那么复杂

反正也是小应用


找本java或c#的书 照着上面的例子就能敲出来
fyming 2011-03-25
  • 打赏
  • 举报
回复
客户极端敏感数据,所以连账套都不肯备份给你,所以只能上门去更新。累啊。



喜-喜 2011-03-25
  • 打赏
  • 举报
回复
这的确挺难办的!你可以远程客户的服务器,远程更新也行啊...
oO寒枫Oo 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 fyming 的回复:]
引用 13 楼 lxpbs8851 的回复:
这个有点难啊 就算你用了各种方法使客户看不到你更新的脚本 那你执行出来之后的数据库同样可以暴露你的脚本


加密 WITH ENCRYPTION
如果他连这个也有办法破了,不在讨论之列
[/Quote]


那我有个办法 你新建一张表 这个表只包含一个字段 然后将你SQL脚本 砸碎了 放在这个字段里面 用密文保存
然后用程序取出密文 解密 拼接 执行


比如 你的脚本是 select col from table

那么你建立一张表

ta(sqlpart varchar(max))

存的内容是
1 select
2 col
3 from
4 table

当时内容是密文
fyming 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 lxpbs8851 的回复:]
这个有点难啊 就算你用了各种方法使客户看不到你更新的脚本 那你执行出来之后的数据库同样可以暴露你的脚本
[/Quote]

加密 WITH ENCRYPTION
如果他连这个也有办法破了,不在讨论之列
oO寒枫Oo 2011-03-25
  • 打赏
  • 举报
回复
这个有点难啊 就算你用了各种方法使客户看不到你更新的脚本 那你执行出来之后的数据库同样可以暴露你的脚本
王向飞 2011-03-25
  • 打赏
  • 举报
回复
直接写到文件里。
你可以把后缀名去掉。。。别人也不知道是啥文件
fyming 2011-03-25
  • 打赏
  • 举报
回复
是我没讲清楚。是这样的,各位老大,我也想到过把SQL里的代码封装到EXE或者资源文件中,让客户运行程序来执行。但问题是我的代码主要是一个一个的存储过程,我通过SQL的生成代码功能生成脚本后,把里面的代码COPY到程序中,但发现COPY过去的SQL格式有些行要调整,否则会出现在SQL中是一行的某些字符,COPY过去后上下会错位一行。如果代码不多的话,我手工调一下也就算了,而且确实能够执行。但我的代码有几千行,要处理的大概有几十行,处理起来太麻烦。

或者这样也能满足我的要求:在我的SQL查询文件中的每一行代码前自动插入一串指定的字符,这样也能解决我的问题,即:
SQL文件例:

@dblQuantity DECIMAL(18,6)=0,
@dblQuantitySum DECIMAL(18,6)=0,
……
---------------------------------------------------
如何把上面代码自动变成

aaaaaaa@dblQuantity DECIMAL(18,6)=0,
aaaaaaa@dblQuantitySum DECIMAL(18,6)=0,
……

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧