it-swarm.com.de

Sie haben keine Berechtigung, den Fehler beim Massenladen zu verwenden

Ich versuche, ein Bild in eine VARBINARY (MAX) -Spalte einzufügen. Ich erhalte diesen Fehler: 

Sie haben keine Berechtigung zur Verwendung der Massenladeanweisung.

Hier ist mein Code:

INSERT INTO Stickers (Name, Category, Gender, ImageData)
       SELECT   
           'Red Dress',
           'Dress',
           'F',
           BulkColumn FROM OPENROWSET(Bulk '\\Mac\Home\Documents\MMImages\reddress.png', 
                                      SINGLE_BLOB) AS BLOB

Ich weiß, dass es viele Antworten zu diesem Thema gibt, aber keine davon hat für mich gearbeitet. Diese Antwort wäre für mich am einfachsten zu befolgen, aber wenn Sie den Objekt-Explorer verwenden und in Sicherheit> Logins gehen> Klicken Sie mit der rechten Maustaste darauf, dass mein Benutzer keinen Menüpunkt "Eigenschaften" enthält.

Ich verwende SQL Server Management Studio. Möglicherweise verwende ich nicht die SQL Server-Version, die ich für mich halte, da keine der programmatischen Möglichkeiten zum Festlegen der Berechtigungen für meinen Benutzer funktioniert. Ich glaube, ich verwende SQL Server 2012. Ich habe wahrscheinlich einige Versionen von SQL Server auf meinem Computer. Wenn Sie auf Hilfe> Info klicken, wird das Logo "Microsoft SQL Server 2012" über den Versionsinformationen für verschiedene Komponenten angezeigt (Die Versionsinformationen für SQL Server werden hier nicht angezeigt).

EDIT: Vielleicht könnte jemand den genauen Code angeben, den ich oberhalb meiner insert-Anweisung verwenden würde, da die Datenbank MirrorMirror heißt, die Tabelle Stickers heißt, mein Benutzer Amber heißt und mein Server gonskh1ou0.database.windows heißt .Netz.

6

Um sicherzustellen, dass Sie die richtigen Berechtigungen für die Verwendung von BULK-Befehlen besitzen, folgen Sie den nachstehenden Anweisungen

  • Erweitern Sie Sicherheit
  • Erweitern Sie Logins
  • Klicken Sie mit der rechten Maustaste auf Ihren Benutzernamen und wählen Sie Eigenschaften (Ein Dialogfenster wird angezeigt)
  • Wählen Sie Serverrollen
  • Wählen Sie bulkadmin, um Massenbefehle verwenden zu können, oder sysadmin, um beliebige Befehle für Ihre Datenbank verwenden zu können.

In Bezug auf die Abfrage, die Sie verwenden, ist dies nicht ganz richtig.

Zum Erstellen der Tabelle

CREATE TABLE [dbo].[Stickers] (
        [name] varchar(10)
        , [category] varchar(10)
        , [gender] varchar(1)
        , [imageData] varchar(max)
)

Zum Einfügen der Daten mit großem Wert

INSERT INTO  [dbo].[Stickers] ([name], [category], [gender], [imageData])
SELECT 'Red dress'
        , 'Dress'
        , 'F'
        , photo.*
FROM OPENROWSET(BULK 'C:\Users\username\Desktop\misc-flower-png-55d7744aca416.png', SINGLE_BLOB) [photo]

Ein paar Anmerkungen:

  • Sie müssen einen Korrelationsnamen für das Massen-Rowset nach der FROM-Klausel festlegen ([Foto]).
  • Verwenden Sie das rechte Spaltenpräfix, das für die Korrelation des Massen-Rowsets verwendet wurde (Foto. *).
  • Die Spalte für die Masseneinfügung muss auf varchar (max) gesetzt werden.

MSDN-Artikel dazu: hier

13
sixech0
ALTER SERVER ROLE [bulkadmin] ADD MEMBER [user]
1
Raja Govindan