【发布时间】:2011-03-13 20:27:05
【问题描述】:
我们的程序附带 SQL Server 2005 数据库和 SQL Server 2005 Express。通常它会在客户端的计算机上安装自己的 SQL Server 2005 实例。
现在我必须添加一些表格,其内容只能在程序内更新。我需要防止这些表被直接更改,例如使用 Management Studio。
我怎样才能做到这一点?我应该设置用户权限吗?我可以使用加密吗?我想设置我自己的“sa”密码来访问 SQL Server 实例并仅在程序内使用它,但这不会使其通过 Windows 身份验证的访问无效。
[编辑] 对我正在尝试做的一些澄清。该计划是一个考勤计划。员工的打卡从打卡中收集并保存在数据库中;一旦收集,这些时钟将无法删除,它们的日期和时间值也无法更改。所以我需要一种方法来防止用户直接在数据库中弄乱这些值。
请记住,我们的大多数客户没有任何 SQL 经验,因此我需要在程序安装时设置这些权限。
[编辑 2] 感谢您的回答,我想再提两个与此主题相关的问题:
1 - 我可以只向那些通过 Windows 身份验证访问数据库的人授予 SELECT 权限吗?
2 - 通过哈希系统保护表免受更改是否可能/可行?就像添加一个哈希列并为每一行计算一个哈希,然后将行数据与哈希进行比较以检查变化?
【问题讨论】:
-
你能解释一下这件事的背景吗?例如你是卖给企业还是个人?想要特别保护这些表的原因是什么?
标签: sql-server sql-server-2005 security database-permissions