我们的程序附带SQL Server 2005数据库和SQL Server 2005 Express。通常它会在客户端的计算机中安装自己的SQL Server 2005实例。SQL Server:防止数据库被直接更改
现在我不得不添加一些表格,其内容只能从程序中更新。我需要通过使用Management Studio来防止直接更改这些表。
我该如何做到这一点?我应该设置用户权限吗?我可以使用加密吗?我想设置自己的'sa'密码来访问SQL Server实例并仅在程序中使用它,但是这并不会通过Windows身份验证使其访问失效。
[编辑]对我正在尝试做什么的一些澄清。该计划是一项考勤计划。员工的计时从时钟收集并保存在数据库中;一旦收集,这些时钟不能被删除,并且它们的日期和时间值不能被改变。所以我需要一种方法来防止用户直接在数据库中混淆这些值。
请记住,我们的大多数客户没有任何SQL经验,所以我需要在程序安装时设置这些权限。
[编辑2]谢谢您的回答,我想提出两个有关这一主题的问题:
1 - 我只授予SELECT权限,对那些通过Windows身份验证访问数据库?
2 - 通过哈希系统保护表格是否可以防止变化?就像添加一个哈希列并为每一行计算一个哈希值,然后比较行数据和哈希值来检查更改?
你能解释一下这个背景吗?例如你是卖给企业还是个人?特别想要保护这些表的原因是什么? – 2010-07-09 12:40:13