我正在构建一个需要通过文件共享将文件保存到文件表的应用程序。我已经设法让它工作,但我对所需的解决方案很好奇。
就我而言,我使用的是部分包含的数据库(具有本地用户),我认为我可以简单地基于现有的 ASP.NET 身份创建一个新用户并授予它一些权限。
我的第一次尝试看起来像这样:
use [clip]
go
create user [IIS APPPool\Test]
GRANT INSERT on object::ImagensEditor TO [IIS APPPOOL\Test]
GRANT SELECT on object::ImagensEditor TO [IIS APPPOOL\Test]
GRANT UPDATE on object::ImagensEditor TO [IIS APPPOOL\Test]
不幸的是,这不起作用,我不断收到“著名的”访问被拒绝错误(UnauthorizedAccessException: Access to [path] is denied)。我设法让事情正常进行的唯一方法是为我的站点的应用程序池创建一个全局 SQL Server 登录。换句话说,我不得不将 create user 替换为如下所示的内容:
use master
go
CREATE login [IIS APPPOOL\Test] from windows with default_database=[clip]
GO
use [clip]
CREATE user [IIS APPPOOL\clipfrontoffice] for login [IIS APPPOOL\Test]
go
然后一切都开始工作(不再出现拒绝访问错误)。
现在,我还没有找到任何文档提到我不能使用基于 Windows 帐户/身份的包含用户来处理这种类型的场景。
那么,我是不是做错了什么?或者在这种情况下,我们真的需要创建一个全局登录吗?
谢谢
路易斯