Je voudrais être en mesure d'ajouter un nouveau SQL LOGIN et le nommer après une adresse e-mail d'une personne. Par exemple "[email protected]". Quand je passe ceci à la procédure stockée suivante j'obtiens une erreur (l'erreur suit la procédure).Paramètre de chaîne SQL Encode afin que les caractères spéciaux fonctionnent
Le proc stocké:
CREATE PROCEDURE [Forms].[AddLogin]
@Email nvarchar(2048),
@TenantPassword nvarchar(2048)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
EXEC('CREATE LOGIN ' + @Email + ' WITH PASSWORD = ''' + @TenantPassword + ''', DEFAULT_DATABASE = DunderMifflin')
END
L'erreur:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '.'.
Je suis sûr que tout ce que je dois faire est encode le paramètre en quelque sorte. De l'aide? Si j'ajoute un utilisateur via l'assistant SQL Manager, je peux spécifier des adresses e-mail, donc je sais que c'est un nom de connexion valide.
Avertissement d'injection obligatoire: Veuillez ne pas passer directement le mot de passe de l'utilisateur dans cette routine !! L'utilisateur peut entrer un mot de passe de '); DROP DATABASE DunderMifflin; - – BradC