我在一个学区工作。每年我们都必须从学生管理系统中导出一份学生名单,并将其发送给处理我们在线考试的公司。

所以为了做这个输出,我们必须雇佣一个了解我们学生管理系统内部运作的人。他写了一个sql (Adaptive Sybase sql Anywhere)查询,将学生导出到我们需要的csv文件。这是在我开始为学区工作之前,所以有一段时间我以为这是一个真正的应用程序,直到轮到我自己做导出的时候。

每年他都会向我们收取500美元来更新这个查询以导出当年的学生。所以当我发现它只是一个查询(.bat文件和.sql文件)时,我的想法是“我可以自己更新”。我所要做的就是改变查询中的年份(例如。2009 - 2010)。

查询(。SQL文件)本身在顶部有这样的注释:

// This code was writtend by [the guy]
// and is the property of [his company]...Copyright 2005,2006,2008,2009
// This code MAY NOT BE USED without the expressed written consent of 
// [his company].

(是的,上面确实写着“writtend”。)

所以现在我老板担心我们侵犯了版权。那家伙会发现是我自己更新了查询因为我们今年还没有要求他更新并采取法律行动。

回到刚才的问题: 他真的能获得这个问题的版权吗? 如果是的话,我们自己修改是不是侵犯了版权? 在我看来,单个查询不是程序代码。它更像是一个命令行命令。但我不知道这在法律上是怎么考虑的。


当前回答

我不知道为什么你们大多数人都这么关注他写的代码,而不关注他写代码时的条件。最初的合同,假设有一个,应该在合同的末尾说明谁拥有代码。学校继续雇佣他并付钱让他重写他的“原始”代码,因此必须有雇佣条款。

从另一个方面来说,学校雇佣别人来写代码,并规定他们永远不会拥有他为他们写的代码,这是很愚蠢的。

其他回答

我不是律师,但据我所知

除非你们有明确的“雇佣工作”的书面协议,或者能够证明双方对“雇佣工作”的理解是存在的,那么他将在他的合法权利范围内限制该代码的使用。

“雇佣工作”基本上是指一个人在“雇佣工作”安排下创造的任何东西,都是雇佣他们的人的财产。如果没有这样的协议,新创作的作品自动归作者所有。我相信任何由雇员(不是分包商)创造的工作都自动被认为是“雇佣工作”。

当然,你不能对想法进行版权保护,只能对这些想法的具体表达进行版权保护。

换一个参数就花500美元?! 如果你熟悉一个SQL,你应该重新实现它,或者如果你不熟悉SQL,你应该再雇佣一个人,让他做一个文档。在此之后,您可以使用ETL工具并自行构建导出。你可能想试试SSIS。这是它的完美用例。

棘手的解决方法:假设您不能合法地更改查询,而是更改数据。创建数据库的副本,更新年份并使用2009查询导出数据。无论如何,至少在我的国家,对于版权所涵盖的内容有一个较低的门槛。一个简单的查询“select foo,bar,bla,blub from foobar order by foo,bar”肯定是不合格的。

如果我是你,我会写一个完整的描述查询需要做什么,包括所有的表,字段名等,并张贴在这里。这里的某些人一定能够编写不受开发人员版权保护的查询的新版本,并且您可以每年根据自己的意愿编辑它。

我认为在这一点上,我们的开发世界是关于保护我们的“想法”的。如果我(曾经看过上面提到的代码)自己写了一个句子,结果与您的提供者正在保护(或试图保护)的句子完全相同,会发生什么?SQL是一种非常有限的语言,一个问题的最佳解决方案在不同的开发人员之间趋于相似。那我就不能用我自己的代码吗?因为和你的源代码是一样的?

只需更改代码,自己使用并更新数据。如果他们问你,回答你已经手动更新了所有的记录,一个接一个。你知道,开发人员是非常有耐心的。他们怎么能证明这不是真的呢?