clickhouse version: 22.3.6.5

users.yaml :
```
  public_ro:
    password: "test"
    networks:
      ip: '::/0'
    profile: readonly
    quota: default
    allow_databases:
      - database: public
```
exec result: 
```
clickhouse-0-0.clickhouse-headless.default.svc.cluster.local :) create table test(test Uint32) engine=memory();

CREATE TABLE test
(
    `test` Uint32
)
ENGINE = memory

Query id: c976c324-efa1-418d-a6de-b615a9f8947d


0 rows in set. Elapsed: 0.001 sec. 

Received exception from server (version 22.3.6):
Code: 164. DB::Exception: Received from localhost:9000. DB::Exception: public_ro: Cannot execute query in readonly mode. (READONLY)

clickhouse-0-0.clickhouse-headless.default.svc.cluster.local :) create function test as a -> a*2;

CREATE FUNCTION test AS a -> (a * 2)

Query id: b5b59b1c-5209-4de6-b521-9d6b50f5ce33

Ok.

0 rows in set. Elapsed: 0.003 sec. 

clickhouse-0-0.clickhouse-headless.default.svc.cluster.local :) drop function test;

DROP FUNCTION test

Query id: ee5f2061-4ff0-4627-bd3f-c7052406d484

Ok.

0 rows in set. Elapsed: 0.001 sec. 

```
if constexpr (grant_option)
            return access_denied("Cannot change grants in readonly mode.", ErrorCodes::READONLY);
        if ((flags & precalc.not_readonly_flags) ||
            ((params.readonly == 1) && (flags & precalc.not_readonly_1_flags)))
        {
            if (params.interface == ClientInfo::Interface::HTTP && params.http_method == ClientInfo::HTTPMethod::GET)
            {
                return access_denied(
                    "Cannot execute query in readonly mode. "
                    "For queries over HTTP, method GET implies readonly. You should use method POST for modifying queries",
                    ErrorCodes::READONLY);
            }
            else
                return access_denied("Cannot execute query in readonly mode", ErrorCodes::READONLY);
        }
    }
    if (!params.allow_ddl && !grant_option)
    {
        if (flags & precalc.ddl_flags)
            return access_denied("Cannot execute query. DDL queries are prohibited for the user", ErrorCodes::QUERY_IS_PROHIBITED);
    }
    if (!params.allow_introspection && !grant_option)
    {
        if (flags & precalc.introspection_flags)
            return access_denied("Introspection functions are disabled, because setting 'allow_introspection_functions' is set to 0", ErrorCodes::FUNCTION_NOT_ALLOWED);
    }
    return access_granted();
}
template <bool throw_if_denied, bool grant_option>
bool ContextAccess::checkAccessImpl(const AccessFlags & flags) const