**Describe the unexpected behaviour**
If, when creating a user via xml in the password_sha256_hex field, enter an incorrect hash, then ClickHouse will crash without correct error description

**How to reproduce**
```
<yandex>
    <users>
        <testuser>
           <password_sha256_hex>a95aff94b1f06ec175c359cd1df425c8bb53a1c9c50596ceed8ecbdba9c5752r</password_sha256_hex>
           <profile>readonly</profile>
        </testuser>
    </users>
</yandex>
```

**Expected behavior**
Some human readable error in logs. Maybe just skip this user without crash.

**Error message and/or stacktrace**
/var/log/clickhouse-server/clickhouse-server.log
```
2021.05.14 17:26:08.911812 [ 25348 ] {} <Information> Application: Will watch for the process with pid 25350
2021.05.14 17:26:08.911957 [ 25350 ] {} <Information> Application: Forked a child process to watch
2021.05.14 17:26:08.912391 [ 25350 ] {} <Information> SentryWriter: Sending crash reports is disabled
2021.05.14 17:26:08.912513 [ 25350 ] {} <Trace> Pipe: Pipe capacity is 1.00 MiB
2021.05.14 17:26:08.966801 [ 25350 ] {} <Information> : Starting ClickHouse 21.4.3.21 with revision 54449, build id: 4E8F6FDA87D4EEA23848BE55E4AFF2B2E87C8553, PID 25350
2021.05.14 17:26:08.966941 [ 25350 ] {} <Information> Application: starting up
2021.05.14 17:26:09.092420 [ 25350 ] {} <Information> Application: Calculated checksum of the binary: 1C0FC2BE13EADA0AAFC7B8FB103A0FE8, integrity check passed.
2021.05.14 17:26:09.092580 [ 25350 ] {} <Trace> Application: Will do mlock to prevent executable memory from being paged out. It may take a few seconds.
2021.05.14 17:26:09.105372 [ 25350 ] {} <Trace> Application: The memory map of clickhouse executable has been mlock'ed, total 186.13 MiB
2021.05.14 17:26:09.105515 [ 25350 ] {} <Debug> Application: rlimit on number of file descriptors is 500000
2021.05.14 17:26:09.105529 [ 25350 ] {} <Debug> Application: Initializing DateLUT.
2021.05.14 17:26:09.105537 [ 25350 ] {} <Trace> Application: Initialized DateLUT with time zone 'Europe/Moscow'.
2021.05.14 17:26:09.105556 [ 25350 ] {} <Debug> Application: Setting up /var/lib/clickhouse/tmp/ to store temporary data in it
2021.05.14 17:26:09.105657 [ 25350 ] {} <Debug> Application: Skipped file in temporary path /var/lib/clickhouse/tmp/data
2021.05.14 17:26:09.106004 [ 25350 ] {} <Debug> Application: Configuration parameter 'interserver_http_host' doesn't exist or exists and empty. Will use '***' as replica host.
2021.05.14 17:26:09.106179 [ 25350 ] {} <Information> SensitiveDataMaskerConfigRead: 1 query masking rules loaded.
2021.05.14 17:26:09.106975 [ 25350 ] {} <Debug> ConfigReloader: Loading config '/etc/clickhouse-server/config.xml'
2021.05.14 17:26:09.110256 [ 25350 ] {} <Debug> ConfigReloader: Loaded config '/etc/clickhouse-server/config.xml', performing update on configuration
2021.05.14 17:26:09.111302 [ 25350 ] {} <Information> Application: Setting max_server_memory_usage was set to 44.23 GiB (49.14 GiB available * 0.90 max_server_memory_usage_to_ram_ratio)
2021.05.14 17:26:09.112183 [ 25350 ] {} <Debug> ConfigReloader: Loaded config '/etc/clickhouse-server/config.xml', performed update on configuration
2021.05.14 17:26:09.115887 [ 25350 ] {} <Debug> ConfigReloader: Loading config '/etc/clickhouse-server/users.xml'
2021.05.14 17:26:09.116431 [ 25350 ] {} <Debug> ConfigReloader: Loaded config '/etc/clickhouse-server/users.xml', performing update on configuration
2021.05.14 17:26:09.118825 [ 25350 ] {} <Error> Application: std::exception
2021.05.14 17:26:09.118859 [ 25350 ] {} <Information> Application: shutting down
2021.05.14 17:26:09.118870 [ 25350 ] {} <Debug> Application: Uninitializing subsystem: Logging Subsystem
2021.05.14 17:26:09.119059 [ 25351 ] {} <Trace> BaseDaemon: Received signal -2
2021.05.14 17:26:09.119101 [ 25351 ] {} <Information> BaseDaemon: Stop SignalListener thread
2021.05.14 17:26:09.138296 [ 25348 ] {} <Information> Application: Child process exited normally with code 70.
```

/var/log/clickhouse-server/clickhouse-server.err.log
```
2021.05.14 17:26:09.118825 [ 25350 ] {} <Error> Application: std::exception
```

**Additional context**
ClickHouse version: 21.4.3.21
OS: Ubuntu 16.04
{
    ContextAccessParams params;
    params.user_id = user_id;
    params.current_roles.insert(current_roles.begin(), current_roles.end());
    params.use_default_roles = use_default_roles;
    params.current_database = current_database;
    params.readonly = settings.readonly;
    params.allow_ddl = settings.allow_ddl;
    params.allow_introspection = settings.allow_introspection_functions;
    params.interface = client_info.interface;
    params.http_method = client_info.http_method;
    params.address = client_info.current_address.host();
    params.quota_key = client_info.quota_key;
    
    
    Strings forwarded_addresses;
    boost::split(forwarded_addresses, client_info.forwarded_for, boost::is_any_of(","));
    if (!forwarded_addresses.empty())
    {
        String & last_forwarded_address = forwarded_addresses.back();
        boost::trim(last_forwarded_address);
        params.forwarded_address = last_forwarded_address;
    }
    return getContextAccess(params);
}
std::shared_ptr<const ContextAccess> AccessControl::getContextAccess(const ContextAccessParams & params) const
{
    return context_access_cache->getContextAccess(params);
}
std::shared_ptr<const EnabledRoles> AccessControl::getEnabledRoles(