Passando valores (como variáveis shell) para 'mysql'?

0

Eu herdei um script de shell que passa alguns comandos SQL para 'mysql' (na verdade, MariaDB) através de algumas linhas de texto "heredoc".

Os comandos SQL são: criar um novo banco de dados; crie um novo usuário do banco de dados (com uma senha); e, em seguida, conceder privilégios para esse usuário para esse banco de dados.

Estes valores de variáveis são passados do texto heredoc para 'mysql' como variáveis shell.

Infelizmente, o script original não levou em consideração a possível necessidade de garantir que essas variáveis possam conter caracteres especiais e devem ser citadas com segurança, tanto para o shell como para o MariaDB.

Estou confuso sobre quais desses nomes / valores precisam ser citados no MariaDB com '(backcasters) e quais precisam ser citados com' (aspas simples). (Meu ambiente MariaDB parece não ter ANSI_QUOTES ativado, portanto, usar aspas duplas não parece ser uma opção para mim.)

Existe a dificuldade adicional que o texto em um shell script envolvido em aspas simples não tem as variáveis shell interpretadas, então estou confuso sobre como eu posso assegurar as aspas simples (para assegurar que os valores passem para o MariaDB são citados) podem ser passados do texto do shell para o MariaDB, garantindo também que as variáveis do shell sejam desreferenciadas corretamente.

(Esta questão é relacionada a uma em DBA.se )

    
por dave559 16.10.2018 / 17:47

0 respostas