【发布时间】:2012-05-31 21:33:56
【问题描述】:
我一直在努力寻找 SQL Server 中与安全相关的问题。 我们正在开发一个面向 SQL Server 2008 的 .NET 应用程序,并且我们希望使用 FileStream。
现在我发现如果您使用集成安全性,SQL Server 仅允许通过 Win32 API 进行 FileStream。问题是我们已经完成了大约 80% 的应用程序,但它完全基于 SQL 身份验证。所以我们直接从我们的应用程序中执行 INSERT,而不是为每个 CRUD 操作使用存储过程。
这是相对安全的,因为我可以将 SQL 用户名和密码以加密形式存储。我知道密码是以明文形式传输的,但我愿意接受。
我们希望最终用户能够通过 Crystal Reports 等工具连接到数据库,为此我们有一个额外的 SQL 登录,该登录仅授予 SELECT 权限。
现在,如果我们更改为集成安全性,我们将不得不授予个人用户(通过 AD 组等)执行应用程序可以执行的操作的权限。否则应用程序将无法完成它的工作。但是,当最终用户直接连接到数据库时,他也将拥有这些权限。
我看到有人说您应该对每个 CRUD 操作使用存储过程,并且只将 EXEC 权限授予 AD 组,但我该怎么做呢?我看不到用户在直接连接或通过应用程序连接时会有不同的授权......有人可以告诉我吗?
关于奖励积分的一个额外问题:据我了解,集成安全性不适用于工作组。那么人们如何让 FileStream 在工作组中工作呢?或者这被认为是不可能的?
【问题讨论】:
标签: sql-server filestream integrated-security