none
Always Encrypted - Modification procedure stockee - operand type clash varchar(255) face à varchar RRS feed

  • Question

  • Bonjour

    Je cherche à utiliser l'option Always Encrypted.

    Il m'est impossible de :

    1- Mettre à jour ma procedure stockée depuis que j'ai crypté un des champs

    2- Exécuté ma procédure stockée depuis C#

    ---------------------------------------------------------------------------------------

    1. J'avais une procédure stockée, sans paramètre d'entrée, ni de sortie, qui renvoie une liste d'utilisateur

    J'ai entre temps crypté le champ u_prenom

    Et j'ai voulu afficher la procedure stockée depuis mon MSSMS, et lancer la mise à jour de la procédure stockée.

    J'obtiens l'erreur : 

    "operand type clash" varchar(255) .... varchar

    Pourquoi ?

    Pour précision, j'ai bien activé l'option d'Alaways Encrypted dans ma chaine de connection, et dans mes requêtes MSSMS

    2. Depuis mon code C#, je cherche à appeler ma procédure stockée, existante, du coup, et j'obtiens l'erreur : 

    operand type clash

    System.Data.SqlClient.SqlException : 'Conflit de types d'opérandes : varchar(255) encrypted with (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_Auto1', column_encryption_key_database_name = 'EcoPortail-Brest') collation_name = 'French_BIN2' est incompatible avec varchar'

    La même erreur en fait.

    Mon code C# : 

    using (SqlConnection con = new SqlConnection(connectionString))
    {                   
    SqlCommand cmd = new SqlCommand("GetAllUtilisateurs", con, null, SqlCommandColumnEncryptionSetting.Enabled);

    cmd.CommandType = CommandType.StoredProcedure;
    con.Open();
    SqlDataReader rdr = cmd.ExecuteReader();

    }

    Ca plante sur le ExecuteReader.

    Vous pouvez m'aider, svp ?


    lundi 10 février 2020 14:18

Toutes les réponses

  • Bonjour

    Dans SSMS avez vous coché l'option "Enable Parameterization for Always Encrypted" ?

    Cela vient en plus de l'option "Enable Always Encrypted" de la chaine de connexion.

    Cdlt
    Christophe


    Christophe LAPORTE - Independent Consultant & Trainer - SQL Server MVP-MCM

    mardi 11 février 2020 17:06