我一直在努力寻找 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 在工作组中工作呢?或者这被认为是不可能的?