Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Acesso negado ao inserir arquivo no Sql Server 2012 FileTable usando File.CreateFile no site ASP.NET


Este é um problema de permissões. No entanto, as permissões não são concedidas por meio de NTFS, mas por meio do SQL Server.

A Identidade do Pool de Aplicativos não tem permissões em seu banco de dados por padrão, portanto, isso deve ser alterado.

  1. Adicione um logon no SQL Server para a identidade do pool de aplicativos que você está usando para o seu site. Por exemplo. "IIS APPPool\MyAppPool"
    USE [master]
    GO
    CREATE LOGIN [IIS APPPOOL\myapppoolname] FROM WINDOWS WITH DEFAULT_DATABASE=[MyDatabase]
    GO
    

  2. Adicione um usuário ao seu banco de dados que este login usará
    USE [MyDatabase]
    CREATE USER [MyUserName] FOR LOGIN [IIS APPPool\myapppoolname]
    

  3. Conceda ao usuário permissões relevantes em seu banco de dados
    use [MyDatabase]
    GRANT INSERT TO [MyUserName]
    GRANT SELECT TO [MyUserName]
    GRANT UPDATE TO [MyUserName]
    

Não tenho certeza se este é o conjunto completo de permissões necessárias, mas achei que era suficiente para eu poder salvar um novo arquivo.