我一直在努力寻找SQL Server中与安全相关的问题。我们正在开发一个针对Server 2008的.NET应用程序,我们希望使用FileStream。
现在,我发现Server只允许FileStream通过Win32 API,如果您使用集成安全性。问题是,我们已经完成了大约80%的应用程序,但它完全基于SQL身份验证。因此,我们正在执行INSERT的直接形式我们的应用程序,而不是使用存储过程的每一个CRUD操作。
这是相对安全的,因为我可以以加密的形式存储SQL用户名和密码。我知道密码是用明文传送的,但我愿意接受。
我们希望最终用户能够通过水晶报告之类的工具连接到数据库,并且为此我们有一个额外的SQL登录名,它只授予了选择权限。
现在,如果我们改变为集成安全,我们将不得不给个人用户(通过AD组,等等)。有权做应用程序可以做的事情。否则,应用程序将无法完成它的工作。但是,当最终用户直接连接到DB时,他也将拥有这些权利。
我看到有人说,您应该对每个CRUD操作使用存储过程,并且只授予AD组执行权限,但我怎么做呢?我不明白当用户直接或通过应用程序连接时,他将如何拥有不同的授权.有人能告诉我这个问题吗。
关于积分的额外问题:据我所知,集成安全性不会在工作组上工作。那么,人们如何让FileStream在工作组中工作呢?或者这被认为是不可能的?
发布于 2012-05-25 10:27:22
试试这个:
NET USE \\DBSERVER /USER:DOMAIN\USERNAME 您将被提示输入密码。这将与数据库服务器建立NetBIOS会话。完成此操作后,您应该能够看到数据库服务器上的共享文件夹和共享打印机。
一旦在客户端计算机和数据库服务器之间建立了netbios会话,您就可以使用集成安全性,而无需提示输入密码。
您可能需要指定“命名管道”作为网络协议来使用,如果它不能与TCP一起使用(但我认为它会)。命名管道继承了您现有的NetBIOS会话,因此,只要您能够列出您可能可以使用的共享。
您还可以使用windows函数NetUseAdd与包含密码的USE_INFO_2 (二级)信息建立登录会话。
我想简单的回答是,您可以为您的应用程序设置一个特殊的Windows登录,并让用户使用它进行登录。但是,请注意,它们也不能使用自己的用户名和密码连接到同一台服务器。
https://stackoverflow.com/questions/10752084
复制相似问题