Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Accesso negato durante l'inserimento di file in Sql Server 2012 FileTable utilizzando File.CreateFile nel sito Web ASP.NET

Questo è un problema di autorizzazioni. Tuttavia, le autorizzazioni non vengono concesse tramite NTFS ma tramite SQL Server.

L'identità del pool di applicazioni non ha alcuna autorizzazione sul database per impostazione predefinita, quindi deve essere modificata.

  1. Aggiungi un accesso a SQL Server per l'identità del pool di applicazioni che stai utilizzando per il tuo sito Web. Per esempio. "IIS APPPool\MyAppPool"

    USE [master]
    GO
    CREATE LOGIN [IIS APPPOOL\myapppoolname] FROM WINDOWS WITH DEFAULT_DATABASE=[MyDatabase]
    GO
    
  2. Aggiungi un Utente al tuo database che utilizzerà questo login

    USE [MyDatabase]
    CREATE USER [MyUserName] FOR LOGIN [IIS APPPool\myapppoolname]
    
  3. Concedi all'utente le autorizzazioni pertinenti sul tuo database

    use [MyDatabase]
    GRANT INSERT TO [MyUserName]
    GRANT SELECT TO [MyUserName]
    GRANT UPDATE TO [MyUserName]
    

Non sono sicuro che questo sia il set completo di autorizzazioni richieste, ma ho riscontrato che era sufficiente per poter salvare un nuovo file.