Demande d'explication sur le cryptage des données
Bonjour,
Je me permets de revenir sur le cours lié à la création d'une clé de cryptage de Mr Brouard.
Quand on crée une clé de cryptage ainsi
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Le petit chat est mort.';
GO
Si je comprends bien, Le petit chat est mort est le mot de passe qui permet de proteger la clé symétrique créée .Comment est-il utilisé?
Ensuite, si vous choisissez de créer une clé de chiffrement symétrique avec la syntaxe suivante :CREATE SYMMETRIC KEY MA_CLEF
WITH ALGORITHM = AES_256
ENCRYPTION BY PASSWORD = 'P@ssw0rd !';
Si j'ai bien compris, le mot de passe 'P@ssw0rd ! permet de protéger la clé symétrique nouvellement créée.
Mais comment l'utiliser également ?
Pour finir, si je choisis d'ouvrir la clé symétrique dans un trigger de type logon, je lis que la syntaxe pour cela est la suivante
Code:
1 2 3 4 5 6 7 8
|
CREATE TRIGGER TR_open_key
ON ALL SERVER
FOR LOGON
AS
BEGIN |
Est-il possible, au lieu de specifier ON ALL SERVER, de ne spécifier le nom que d'un seul serveur ?
Vous remerciant beaucoup de votre aide sur ces différents points,
Bien cordialement.
new_wave
creation de la vue V_Forum_Registration
Rebonjour,
En créant la vue, j'ai le même message "Msg 8116, Niveau 16, État 1, Procédure V_Forum_Registration, Ligne 3 [Ligne de départ du lot 0]
Argument data type uniqueidentifier is invalid for argument 2 of DecryptByKey function."
Avez-vous saisi des données dans la table Forum_Registration, ce qui n'est pas mon cas car les données saisies pour le champ password sont de type VarBinary et celle saisies au niveau de l'interface graphique sont de type NVarchar.
Vous remerciant encore de votre réponse,
Cordialement.
new_wave
creation du trigger-cryptage des données
Rebonjour,
La création de la vue s'est bien déroulée.
A présent , à la création du trigger les deux champs username et password sont soulignés avec le message "nom de colonne invalide".
ainsi que le message suivant :
Citation:
Msg 213, Niveau 16, État 1, Procédure E_I_IU_Forum_Registration, Ligne 6 [Ligne de départ du lot 5]
Column name or number of supplied values does not match table definition.
Par ailleurs il est mentionné que l'objet V_Forum_Registration n'est pas valide ou n'existe pas pour cette opération.(je travaille bien avec Sql Serveur Management Studio)
J'ai remplacé son nom par [dbo].[V_Registration] mais sans changement de message.
Vous remerciant encore de bien vouloir m'aider à y a voir plus clair.
Bien cordialement.
new_wave
saisie au format NVarchar-cryptage des données
Merci de votre réponse.
J'ai émis une demande sur le forum C# correspondante.
Bien cordialement.
new_wave
création d'un password crypté
Bonjour,
J'ai bien trouvé le code qui permet le cast d'un string saisi en C# au niveau du champ password
Code:
1 2
|
byte[] txtpassword_encode = System.Text.Encoding.UTF8.GetBytes(" txtpassword.Text"); |
Du fait qu'ensuite je fais , dans le code une requete sql INSERT
Code:
1 2 3 4 5 6 7 8
|
sqlquery = "Insert into Forum_Registration values (@username , @password, @fullname , @rbl_gender, @txtdob, @emailid)";
sqlCommand.Parameters.Add(new SqlParameter("@password", SqlDbType.VarBinary));
byte[] txtpassword_encode = System.Text.Encoding.UTF8.GetBytes(" txtpassword.Text");
sqlCommand.Parameters["@password"].Value = txtpassword_encode; |
Quand je regarde au niveau de la vue les données qui sont sélectionnées je vois bien le username, mais au niveau du password j'obtiens une valeur null.
Est-ce normal?
Pourquoi n'y a -t-il pas eu conversion du type du password en varchar (100).
Je précise que dans le champ password je vois bien le password encodé car la fonction UTF8.GetBytes a permis cet encodage.
Ensuite, au niveau du trigger , puisqu'au niveau de la vue il n'y a pas de cast du password en varchar(100), il ne peut y avoir de cryptage en varbinary.
Pouvez-vous m'expliquer pourquoi au niveau de la vue je ne récupère pas le password en varchar(100).
Merci beaucoup encore à vous de votre aide.
Bien cordialement.
new_wave