我们有一个启用了文件共享function的SQL Server 2012安装。 然后,我们有一个IIS应用程序,可以直接写入数据库创build的\ localhost \ MSSQLServer …共享。
我遇到的问题是为了实现这一点,我必须创build一个新的用户帐户,并将其设置为应用程序的应用程序池标识,然后将此用户添加到SQL Server,最后为该用户提供sysadminangular色。 如果我给它任何其他服务器angular色,它不会获得对共享的写入权限。
拥有一个IIS应用程序池用户帐户可以不受限制地访问整个SQL Server并不理想。 有没有办法将SQL Serverconfiguration为允许较低特权angular色访问文件共享?
一般来说,您应该能够授予该网站的应用程序池用户在单个文件表上的插入/删除/更新/select权限(以及可能需要访问的数据库的其他部分。
授予他们的login“系统pipe理员”太远了。 在testing中进行debugging时,您可以尝试向该用户授予该用户login的“db_datawriter”和“db_datareader”angular色,甚至包含保存该文件表的数据库的“db_owner”angular色
但是你应该可以做类似的事情
USE [DatabaseName] GRANT SELECT, DELETE, UPDATE, INSERT on TABLE [FiletableName] TO [DOMAIN/UserName]
或为已经应用了所有GRANT的应用程序创buildangular色,然后将新angular色授予您的用户。
FileTable表types不使用特殊的权限模型,它使用正常的SQL权限机制。
最后,请确保您使用的是SQL2012 Service Pack 1,因为RTM版本中存在已知的安全漏洞。 “ SP1中修复的安全缺陷 ”