Wie zum einfügen von Werten in eine Tabelle in sql 2016, deren Spalten sind immer verschlüsselt?

Habe ich verschlüsselt paar Spalten in sql-2016 Tabelle mit Spalte Verschlüsselung. Jetzt möchte ich zum Einfügen von Daten in die Tabelle. Ich versuchte Sie eine gespeicherte Prozedur erstellen und ausführen, die Prozedur mit Parametern, aber ich bin immer folgende Fehlermeldung.

Verschlüsselung Schema mismatch für Spalten/Variablen ‚@lastName‘. Die
Verschlüsselungsverfahren für die Spalten/Variablen (encryption_type =
‚KLARTEXT‘) und der Ausdruck in Zeile ‚0‘ erwartet
(encryption_type = ‚DETERMINISTISCH‘, encryption_algorithm_name =
‚AEAD_AES_256_CBC_HMAC_SHA_256‘, column_encryption_key_name =
‚CEK_Auto1‘, column_encryption_key_database_name = ‚BROps_TestDB‘) (oder
schwächer).

Auch, ich habe eine bestehende Anwendung, wo die Werte eingefügt werden, die in Tabelle mithilfe von Entity framework in SQL 2008 (die wir versuchen, zu aktualisieren, um SQl-2016 für immer verschlüsseln-Funktion).
So gibt es jede Flagge oder jeder Methode, durch die wir einfügen von Daten in SQL-2016 (Spalte verschlüsseln) mit minimalen änderungen im code ?

Habe ich Beispiel-code gespeicherte Prozedur und die Ausführung der gespeicherten Prozedur.

    CREATE PROCEDURE dbo.AddCustomer
      @CustomerID int,
      @FirstName nvarchar(25),
      @LastName nvarchar(25),
      @SIN nvarchar(11),
      @CreditCardNumber nvarchar(25),
      @EmailAddress nvarchar(50),
      @PhoneNumber nvarchar(25),
      @TerritoryID int
    AS
    BEGIN
     INSERT INTO [dbo].[Customers]
               ([CustomerID]
               ,[FirstName]
               ,[LastName]
               ,[SIN]
               ,[CreditCardNumber]
               ,[EmailAddress]
               ,[PhoneNumber]
               ,[TerritoryID])
         VALUES
               (@CustomerID,
               @FirstName,
               @LastName,
               @SIN,
               @CreditCardNumber,
               @EmailAddress,
               @PhoneNumber,
               @TerritoryID)
    END 

----------------------------------------
    DECLARE @CustomerID int,
    @FirstName nvarchar(25),
    @LastName nvarchar(25),
    @SIN nvarchar(11),
    @CreditCardNumber nvarchar(25),
    @EmailAddress nvarchar(50),
    @PhoneNumber nvarchar(25),
    @TerritoryID int
    SET @CustomerID = 1
    SET @FirstName = 'David'
    SET @LastName = 'Postlethwaite'
    SET @SIN = '12345-3-ee-3'
    SET @CreditCardNumber = '1111-1233-1231-1233'
    SET @EmailAddress = '[email protected]'
    SET @PhoneNumber = '406555'
    SET @TerritoryID = 1
    execdbo.AddCustomer @CustomerID,@FirstName,@LastName,@SIN,@CreditCardNumber,@EmailAddress,
    @PhoneNumber,@TerritoryID
InformationsquelleAutor user3775287 | 2017-06-20



2 Replies
  1. 1

    Beim einfügen von Daten in die Verschlüsselte Spalte direkt vom SSMS müssen Sie Parameterization for Always Encrypted zu True.

    Allerdings wird diese Funktion nicht unterstützt, die in SSMS 2016, so müssen Sie installieren Sie die neuere version von SSMS, die gefunden werden konnte hier.

    Sobald man den SSMS 17.0, müssen Sie Spalte aktivieren Sie die Verschlüsselung für Ihre Verbindung, wenn Sie eine Verbindung zu der Instanz.

    Einfügen um die Daten in das angegebene verschlüsselte Spalte, wenn Sie öffnen eine neue Abfrage-Fenster die folgenden Schritte aus:

    • Wählen Sie Query Options aus Query Menü
    • In der Advanced Wählen Sie Enable Parameterization for Always Encrypted

    Wie zum einfügen von Werten in eine Tabelle in sql 2016, deren Spalten sind immer verschlüsselt?

    Nun können Sie zum einfügen von Daten direkt in die Tabelle von SSMS.

    Um die verschlüsselte Spalte Wert im Klartext, Sie müssen Enable Column Encryption Setting. Um dies zu tun, um die folgenden:

    • In der Connect to Server dialog
    • Wählen Sie Options
    • Gehen Additional Connection Parameters
    • Geben Sie Column Encryption Setting = Enabled

    Wie zum einfügen von Werten in eine Tabelle in sql 2016, deren Spalten sind immer verschlüsselt?

  2. -1

    Können Sie einfügen von Daten in eine verschlüsselte Spalte mit einer Anwendung oder über SSMS. Bitte sehen dieser Artikel, die beschreibt, wie das einfügen von Daten in eine Immer Verschlüsselt, Spalte mithilfe von gespeicherten Prozeduren.

    Bitte schauen Sie auf dieser Artikel, um zu sehen, wie Sie das einfügen von Werten in eine verschlüsselte Spalte mit Parametrierung für Immer Verschlüsselt.
    Schauen Sie auch bei Parametrierung für Immer Verschlüsselt Abschnitt dieser Artikel

    Dieser Artikel beschrieben, wie das einfügen von Werten in einer immer verschlüsselt, Spalte, und verwenden Sie eine Anwendung

    Für Immer Verschlüsselt mit Entity Framework, Folgen Sie bitte dieser Artikel.

    • Ich versuche zum Einfügen und Aktualisieren von Zeilen haben, die verschlüsselte Spalten in der Datenbank mit Entity Framework. Können Sie bitte zeigen Sie mir Richtung material, das ich beziehen kann.
    • Lesen Sie bitte diesen Artikel (blogs.msdn.microsoft.com/sql_pfe_blog/2016/07/19/…) für das sehen, wie das einfügen in eine Immer Verschlüsselt-Spalte mithilfe der gespeicherten Prozedur und in diesem Artikel (blogs.msdn.microsoft.com/sqlsecurity/2015/08/27/…), um zu lernen, wie zu verwenden Immer Verschlüsselt mit Entity Framework

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.