保护对SQL Server数据的访问

时间:2011-03-09 20:20:30

标签: sql-server database security

我正在构建一个违反SQL 2008数据库的Windows应用程序。一些表数据非常敏感,但是如果不对这些表进行读/写访问,我们的一些用户仍然至少需要读取。我们将使用Windows安全性来控制他们对数据库的访问。

我想知道那些相同的用户是否可以通过Excel或MS Access等方式访问这些表中的数据?这是关于阻止一个坏苹果试图窃取内部数据并随之走走。但是,如果他们对数据具有读取权限,是否有任何真正的方法可以阻止它们?

很抱歉,如果这是一个SQL Server 101问题,但我找不到问题的好答案。

感谢您的帮助!

4 个答案:

答案 0 :(得分:6)

如果他们必须具有读访问权限,那么您应该假设他们可以使用数据执行他们想要的操作。如果您在屏幕上呈现数据,则必须假设有人可以用纸和笔写下他们看到的内容。

据说,我创建了一个服务帐户,该帐户有权从您的应用程序访问SQL Server。通过角色控制应用中的访问权限。不要让任何用户直接访问您的数据库 - 他们必须通过您的应用程序。

如果您尝试打开Access或Excel并将其指向SQL Server数据库,则他们无权执行任何操作。

答案 1 :(得分:4)

执行此操作的一种好方法可能是创建满足您所有需求的存储过程,并授予所有用户仅执行权限的权限。

如果您授予用户完全读取权限,那么很难防止他们谈论您的内容。

答案 2 :(得分:2)

正如其他人所说,您可以为您的应用程序创建一个SQL帐户。除了您的应用程序本身之外,这将禁止任何外部访问。当然,这意味着必须限制对您的应用程序本身的访问。通过将对可执行文件的读访问权限限制为包含访问权限的用户的活动目录组,也可以轻松实现这一点。此外,您的应用程序还可以使用活动目录挂钩来确定是否允许那些需要它的用户进行写访问。

尽管如此......你最大的问题将是物理安全。如果经过身份验证的组中只有一个用户不可信,那么必须具备某种可接受的使用策略,HR员工筛选和用户环境检查和平衡。适当的工作站部署策略也很合适,允许您限制可移动驱动器使用,记录所有访问,连接详细信息等。

如果您不能信任该用户,那么此时更多是关于操作环境。

答案 3 :(得分:-1)

用户可以使用Access中的链接表或Excel中的外部数据查询来访问SQL表,但是权限由SQL服务器控制,这意味着用户具有读访问权限,他们将能够以只读方式访问数据模式。