Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Zugriff verweigert beim Einfügen einer Datei in Sql Server 2012 FileTable mithilfe von File.CreateFile auf der ASP.NET-Website

Dies ist ein Berechtigungsproblem. Die Berechtigungen werden jedoch nicht über NTFS, sondern über SQL Server erteilt.

Die Anwendungspoolidentität hat standardmäßig keine Berechtigungen für Ihre Datenbank, daher muss dies geändert werden.

  1. Fügen Sie eine Anmeldung zu SQL Server für die Anwendungspoolidentität hinzu, die Sie für Ihre Website verwenden. Z.B. "IIS APPPool\MyAppPool"

    USE [master]
    GO
    CREATE LOGIN [IIS APPPOOL\myapppoolname] FROM WINDOWS WITH DEFAULT_DATABASE=[MyDatabase]
    GO
    
  2. Fügen Sie Ihrer Datenbank einen Benutzer hinzu, den diese Anmeldung verwenden wird

    USE [MyDatabase]
    CREATE USER [MyUserName] FOR LOGIN [IIS APPPool\myapppoolname]
    
  3. Gewähren Sie dem Benutzer relevante Berechtigungen für Ihre Datenbank

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

Ich bin mir nicht sicher, ob dies der vollständige Satz an erforderlichen Berechtigungen ist, aber ich fand, dass es ausreichte, um eine neue Datei speichern zu können.