sql >> Database >  >> RDS >> Sqlserver

Toegang geweigerd bij het invoegen van een bestand in Sql Server 2012 FileTable met behulp van File.CreateFile op de ASP.NET-website

Dit is een machtigingsprobleem. De machtigingen worden echter niet verleend via NTFS maar via SQL Server.

De Application Pool Identity heeft standaard geen rechten op uw database, dus dit moet worden gewijzigd.

  1. Voeg een login toe aan SQL Server voor de Application Pool Identity die u gebruikt voor uw website. bijv. "IIS APPPool\MijnAppPool"

    USE [master]
    GO
    CREATE LOGIN [IIS APPPOOL\myapppoolname] FROM WINDOWS WITH DEFAULT_DATABASE=[MyDatabase]
    GO
    
  2. Voeg een gebruiker toe aan uw database die deze login zal gebruiken

    USE [MyDatabase]
    CREATE USER [MyUserName] FOR LOGIN [IIS APPPool\myapppoolname]
    
  3. Verleen de gebruiker relevante machtigingen voor uw database

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

Ik weet niet zeker of dit de volledige set machtigingen is, maar ik merkte dat het voldoende was om een ​​nieuw bestand op te slaan.



  1. php echo eerste rij wacht/slaap dan echo tweede rij

  2. Klassiek ADO.NET - Hoe geef ik UDT door aan een opgeslagen procedure?

  3. Meerdere (3+) tabellen samenvoegen in één verklaring

  4. Python MySQLdb / MySQL INSERT IGNORE &Controleren indien genegeerd