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

> SETTINGS PROFILE 文档

# CREATE SETTINGS PROFILE

创建可分配给用户或角色的 [SETTINGS PROFILE](/zh/concepts/features/security/access-rights#settings-profiles-management)。

语法：

```sql theme={null}
CREATE SETTINGS PROFILE [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]]
    [ON CLUSTER cluster_name]
    [IN access_storage_type]
    [SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [CONST|READONLY|WRITABLE|CHANGEABLE_IN_READONLY] | INHERIT 'profile_name'] [,...]
    [TO {{role1 | user1 [, role2 | user2 ...]} | NONE | ALL | ALL EXCEPT {role1 | user1 [, role2 | user2 ...]}}]
```

`ON CLUSTER` 子句允许在集群中创建 SETTINGS PROFILE，参见 [分布式 DDL](/zh/reference/statements/distributed-ddl)。

`CREATE SETTINGS PROFILE` 需要 [CREATE SETTINGS PROFILE](/zh/reference/statements/grant#access-management) 权限。`OR REPLACE` 会丢弃同名的已有 profile，包括它所应用的角色，因此还需要 [DROP SETTINGS PROFILE](/zh/reference/statements/grant#access-management) 权限。无论该 profile 是否已存在，都需要 `DROP SETTINGS PROFILE` 权限，因此无法使用该语句来探知哪些 profile 存在。

## 示例

创建用户：

```sql theme={null}
CREATE USER robin IDENTIFIED BY 'password';
```

创建 `max_memory_usage_profile` SETTINGS PROFILE，为 `max_memory_usage` 设置指定值和约束，并将其分配给用户 `robin`：

```sql theme={null}
CREATE
SETTINGS PROFILE max_memory_usage_profile SETTINGS max_memory_usage = 100000001 MIN 90000000 MAX 110000000
TO robin
```
