Grant select certain columns caused permission denied on v4.12.9
<!-- Before opening an issue: if you use `npm` try running `yarn` instead; if
      you run `yarn`, please try running `npx yarn-deduplicate && yarn`. -->

### Summary

I have the same problem as #549  with version 4.12.9

### Steps to reproduce

```sql
GRANT select(id, email) ON app_public.userstest TO app_user; -- I ommit firstname 
```

### Expected results

```gql
query MyQuery {
  allUserstests {
    nodes {
      email
    }
  }
}
```
```json
{
  "data": {
    "allUserstests": {
      "nodes": [
        {
          "email": "test@gmail.com"
        }
      ]
    }
  }
}
```

### Actual results

```gql
query MyQuery {
  allUserstests {
    nodes {
      email
    }
  }
}
```
```json
"errors": [
        {
            "errcode": "42501",
            "extensions": {
                "exception": {
                    "errcode": "42501"
                }
            },
            "message": "permission denied for table userstest",
}
```

### Additional context
#### Explain query:
```json
{
"explain": [
    {
      "query": "with __local_0__ as (select to_json((json_build_object('email'::text, (__local_1__.\"email\")))) as \"@nodes\" from (select __local_1__.*\nfrom \"app_public\".\"userstest\" as __local_1__\n\nwhere (TRUE) and (TRUE)\norder by __local_1__.\"id\" ASC\n\n) __local_1__), __local_2__ as (select json_agg(to_json(__local_0__)) as data from __local_0__) select coalesce((select __local_2__.data from __local_2__), '[]'::json) as \"data\" ",
      "plan": "Result  (cost=49.53..49.54 rows=1 width=32)\n  InitPlan 1 (returns $0)\n    ->  Aggregate  (cost=49.51..49.52 rows=1 width=32)\n          ->  Sort  (cost=38.04..39.31 rows=510 width=132)\n                Sort Key: __local_1__.id\n                ->  Seq Scan on userstest __local_1__  (cost=0.00..15.10 rows=510 width=132)"
    }
  ]
}
```
- Tested with Koa and CLI
- PostgreSQL 14.2
