I'm trying to create a new user on a clickhouse cluster with  3 shards using this command:
`CREATE USER IF NOT EXISTS user ON CLUSTER '{cluster}' IDENTIFIED WITH sha256_password BY 'password' DEFAULT ROLE NONE`

This command gets expanded to:

`CREATE USER IF NOT EXISTS user ON CLUSTER {cluster} IDENTIFIED WITH sha256_hash BY '<hash>' SALT '<salt>' DEFAULT ROLE NONE`

However, on each of the shard I get this error:

`Syntax error: failed at position 123 ('SALT'): SALT '<salt>' DEFAULT ROLE NONE. Expected one of: HOST, SETTINGS, DEFAULT ROLE, GRANTEES, DEFAULT DATABASE, end of query.`

However, if I switch to use `plaintext_password` instead, everything works fine. Looks like the expansion and the addition of the "SALT" was not expected when handling this command.

* Which ClickHouse server version to use: 22.4

**Expected behavior**
The user to be created with no errors.

Thanks!
}
            }
            else if (expect_common_names)
            {
                if (!ParserKeyword{"CN"}.ignore(pos, expected))
                    return false;
                ASTPtr ast;
                if (!ParserList{std::make_unique<ParserStringLiteral>(), std::make_unique<ParserToken>(TokenType::Comma), false}.parse(pos, ast, expected))
                    return false;
                for (const auto & ast_child : ast->children)
                    common_names.insert(ast_child->as<const ASTLiteral &>().value.safeGet<String>());
            }
            auth_data = AuthenticationData{*type};
            if (auth_data.getType() == AuthenticationType::SHA256_PASSWORD)
            {
                if (!parsed_salt.empty())
                {
                    auth_data.setSalt(parsed_salt);
                }
                else if (expect_password)
                {
#if USE_SSL
                    
                    
                    uint8_t key[32];
                    if (RAND_bytes(key, sizeof(key)) != 1)
                    {
                        char buf[512] = {0};
                        ERR_error_string_n(ERR_get_error(), buf, sizeof(buf));
                        throw Exception(ErrorCodes::OPENSSL_ERROR, "Cannot generate salt for password. OpenSSL {}", buf);