> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-vortex-format.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 역할에 할당된 사용자와 사용자에 할당된 역할을 확인하는 방법

> ClickHouse의 `system.role_grants`를 쿼리하여 역할에 할당된 사용자와 특정 사용자에게 할당된 역할을 찾는 방법을 알아봅니다.

<div id="question">
  ## 질문
</div>

역할에 할당된 사용자를 확인하거나, 반대로 사용자에게 할당된 역할을 확인하려면 어떻게 해야 합니까?

<div id="answer">
  ## 답변
</div>

관리자 권한이 있는 `default` 사용자로 로그인한 후 현재 사용자를 확인하십시오:

```sql title="Query" theme={null}
SELECT user()
```

```response title="Response" theme={null}
Query id: 9bc02d8b-ab05-4a63-b2dd-3e0093f36d31

┌─currentUser()─┐
│ default       │
└───────────────┘

1 row in set. Elapsed: 0.001 sec.
```

사용자 `foo`를 생성합니다:

```sql title="Query" theme={null}
CREATE USER foo IDENTIFIED WITH sha256_password BY 'secretPassword123!';
```

```response title="Response" theme={null}
Query id: 9711f5fc-2b5c-43f0-a760-0c67764919a2

Ok.

0 rows in set. Elapsed: 0.102 sec.
```

사용자 `bar`를 생성합니다:

```sql title="Query" theme={null}
CREATE USER bar IDENTIFIED WITH sha256_password BY 'secretPassword123!';
```

```response title="Response" theme={null}
Query id: 11a78bf5-f5e1-4f1d-bfe8-cf2aa0a1b15d

Ok.

0 rows in set. Elapsed: 0.103 sec.
```

롤(Role) `role_a`를 생성합니다:

```sql title="Query" theme={null}
CREATE ROLE role_a;
```

```response title="Response" theme={null}
Query id: 13ccc007-fa5a-4110-9a05-48e284cea45f

Ok.

0 rows in set. Elapsed: 0.104 sec.
```

`role_b` 롤을 생성합니다:

```sql title="Query" theme={null}
CREATE ROLE role_b;
```

```response title="Response" theme={null}
Query id: 43f84376-76fa-4cd2-b8e2-2dcfbe41ec1b

Ok.

0 rows in set. Elapsed: 0.103 sec.
```

사용자 `foo`와 `bar`에게 `role_a`를 부여합니다:

```sql title="Query" theme={null}
GRANT role_a TO foo, bar;
```

```response title="Response" theme={null}
Query id: 4fe91624-efb3-4091-b680-b6905ab445b4

Ok.

0 rows in set. Elapsed: 0.107 sec.
```

사용자 `bar`에게 `role_b`를 grant합니다:

```sql title="Query" theme={null}
GRANT role_b TO bar;
```

```response title="Response" theme={null}
Query id: 7ea38b28-2719-4dd6-8abd-0241f7b34d5c

Ok.

0 rows in set. Elapsed: 0.102 sec.
```

어떤 사용자에게 `role_a`가 할당되었는지 확인합니다:

```sql title="Query" theme={null}
SELECT * FROM system.role_grants WHERE granted_role_name = 'role_a';
```

```response title="Response" theme={null}
Query id: bf088776-f450-4150-b2e8-197b400573c1

┌─user_name─┬─role_name─┬─granted_role_name─┬─granted_role_is_default─┬─with_admin_option─┐
│ bar       │ ᴺᵁᴸᴸ      │ role_a            │                       1 │                 0 │
│ foo       │ ᴺᵁᴸᴸ      │ role_a            │                       1 │                 0 │
└───────────┴───────────┴───────────────────┴─────────────────────────┴───────────────────┘

2 rows in set. Elapsed: 0.001 sec.
```

`foo`와 `bar` 사용자에게 어떤 역할이 할당되었는지 확인합니다:

```sql title="Query" theme={null}
SELECT * FROM system.role_grants WHERE user_name IN ('foo', 'bar');
```

```response title="Response" theme={null}
Query id: b81dbe1c-42f0-43bd-b237-1a6b1d81ae3d

┌─user_name─┬─role_name─┬─granted_role_name─┬─granted_role_is_default─┬─with_admin_option─┐
│ bar       │ ᴺᵁᴸᴸ      │ role_b            │                       1 │                 0 │
│ bar       │ ᴺᵁᴸᴸ      │ role_a            │                       1 │                 0 │
│ foo       │ ᴺᵁᴸᴸ      │ role_a            │                       1 │                 0 │
└───────────┴───────────┴───────────────────┴─────────────────────────┴───────────────────┘

3 rows in set. Elapsed: 0.001 sec.
```

사용자 `foo`로 로그인한 후 현재 사용자와 역할을 확인합니다:

```sql title="Query" theme={null}
SELECT user();
```

```response title="Response" theme={null}
Query id: eee6eaaa-11bc-42c1-9258-fa3079ee6f80

┌─currentUser()─┐
│ foo           │
└───────────────┘

1 row in set. Elapsed: 0.001 sec.
```

```sql title="Query" theme={null}
SHOW CURRENT ROLES;
```

```response title="Response" theme={null}
Query id: aa6a1ac1-3502-4960-bb34-f7d9f0d7986e

┌─role_name─┬─with_admin_option─┬─is_default─┐
│ role_a    │                 0 │          1 │
└───────────┴───────────────────┴────────────┘

1 row in set. Elapsed: 0.002 sec.
```

사용자 `bar`로 로그인한 후 현재 사용자와 역할을 확인합니다:

```sql title="Query" theme={null}
SELECT user();
```

```response title="Response" theme={null}
Query id: fa9ba47f-efcf-4491-9b4e-2f1130dfa84b

┌─currentUser()─┐
│ bar           │
└───────────────┘

1 row in set. Elapsed: 0.001 sec.
```

```sql title="Query" theme={null}
SHOW CURRENT ROLES;
```

```response title="Response" theme={null}
Query id: fb3f2941-a8ce-481d-8fad-b775bfc5b532

┌─role_name─┬─with_admin_option─┬─is_default─┐
│ role_a    │                 0 │          1 │
│ role_b    │                 0 │          1 │
└───────────┴───────────────────┴────────────┘

2 rows in set. Elapsed: 0.001 sec.
```
