gpt4 book ai didi

sql-server - SQL Server FileTable 和 ASP.NET : permissions for user

转载 作者:行者123 更新时间:2023-12-02 11:43:29 25 4
gpt4 key购买 nike

我正在构建一个应用程序,需要通过文件共享将文件保存到文件表中。我已经设法让它工作,但我对所需的解决方案感到好奇。

就我而言,我使用的是部分包含的数据库(其中有本地用户),我认为我可以简单地基于现有 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:访问[路径]被拒绝)。我设法让事情正常工作的唯一方法是为我的网站的应用程序池创建全局 SQL Server 登录名。换句话说,我必须用如下所示的内容替换创建用户:

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 帐户/身份的包含用户。

所以,我做错了什么吗?或者在这种情况下,我们确实需要创建一个全局登录?

谢谢

路易斯

最佳答案

这是预期的功能,因为您需要使用集成安全性来使用文件流(因此需要具有权限的 Windows 登录才能写入底层文件系统)。

您不能使用在选项 1 中创建的用户,因为这只会创建一个 SQL 用户,Windows 无法使用该用户来访问和写入文件系统。通过创建全局 SQL 用户和与其关联的登录名,应用程序池可以像 Windows 登录名一样登录 SQL Server,并正确写入文件系统。

关于sql-server - SQL Server FileTable 和 ASP.NET : permissions for user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45744007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com