如何设置不需要系统管理员访问权限即可写入的 SQL 文件共享?

如何设置不需要系统管理员访问权限即可写入的 SQL 文件共享?

我们安装了 SQL Server 2012,并启用了文件共享功能。然后我们有一个 IIS 应用程序,可以直接写入数据库创建的 \localhost\MSSQLServer... 共享。

我遇到的问题是,要使它正常工作,我必须创建一个新的用户帐户并将其设置为应用程序的应用程序池标识,然后将此用户添加到 SQL Server,最后为该用户授予 sysadmin 角色。如果我赋予它任何其他服务器角色,它就不会获得对共享的写访问权限。

让 IIS 应用程序池用户帐户无限制地访问整个 SQL Server 并不理想。因此,有没有办法配置 SQL Server 以允许较低权限的角色访问文件共享?

答案1

一般来说,您应该能够授予该网站的应用程序池用户对单个文件表(以及它可能需要访问的数据库的其他部分)的插入/删除/更新/选择权限。

授予他们的登录名“sysadmin”太过分了。在测试中调试时,您可以尝试授予该登录名的用户“db_datawriter”和“db_datareader”角色,甚至是保存文件表的数据库上的“db_owner”角色

但你应该可以做类似的事情

USE [DatabaseName]
GRANT SELECT, DELETE, UPDATE, INSERT on TABLE [FiletableName] TO [DOMAIN/UserName]

或者为已应用所有 GRANT 的应用程序创建一个角色,然后将该新角色授予您的用户。

FileTable 表类型不使用特殊权限模型,它使用普通的 SQL 权限机制。

最后,请确保您使用的是 SQL2012 Service Pack 1,因为 RTM 版本中存在已知的安全漏洞。”SP1 中修复的安全漏洞

相关内容