고급 권한: 백엔드 인프라
Entry, Professional, Enterprise, Enterprise Advanced 플랜에서 사용할 수 있습니다.
이 문서는 Mattermost 권한(permission)의 백엔드 서버 인프라를 설명하며, 설치 환경을 직접 수정하려는 기술 관리자나 개발자에게만 권장합니다.
엔터티 정의
권한
권한은 어떤 객체에 대해 수행할 수 있도록 허용된 동작을 뜻합니다. 즉, 해당 권한을 부여하는 역할(role)을 배정받은 컨텍스트에서 사용자가 수행할 수 있는 동작을 나타냅니다.
역할
역할은 권한이 부여되는 대상이며, 사용자에게 특정 컨텍스트에서 배정되어 그 컨텍스트 안에서 해당 권한을 갖게 합니다. 한 사용자가 서로 다른 컨텍스트에서 서로 다른 역할을 통해 각기 다른 권한 집합을 갖게 될 수 있습니다.
스코프
권한은 주어진 스코프(scope) 안에서 존재합니다. Mattermost 시스템에는 System, Team, Channel의 세 가지 스코프가 있습니다. 권한은 적용된 컨텍스트에서 하위 스코프로 전파됩니다. 예를 들어 "Channel" 스코프 권한이 "Team" 컨텍스트에 적용되면, 그 팀에 속한 모든 채널에 해당 권한이 적용됩니다. 권한은 다음과 같이 분류됩니다.
- System 스코프: 시스템 수준에서만 의미가 있는 경우입니다. 예를 들어
manage_oauth가 있습니다. - Team 스코프: 팀 수준과 시스템 수준에서 의미가 있는 경우입니다. 예를 들어
create_public_channel이 있습니다. - Channel 스코프: 채널·팀·시스템 수준 모두에서 의미가 있는 경우입니다. 예를 들어
manage_public_channel_properties가 있습니다.
컨텍스트
컨텍스트는 스코프의 인스턴스입니다. 예를 들어 "Developers Hangout"이라는 채널은 채널 스코프의 인스턴스입니다. 컨텍스트 사이에는 스코프의 계층 순서를 반영한 계층 관계가 있습니다. 각 컨텍스트는 하나의 부모를 가지며 여러 자식을 가질 수 있고, 최상위 부모 컨텍스트는 시스템 컨텍스트입니다.
- 채널 컨텍스트는 팀 컨텍스트를 부모로 두고, 그 팀 컨텍스트의 부모는 시스템 컨텍스트입니다. 예를 들어 "Developers Hangout" 채널은 채널 컨텍스트이고, 부모 팀 컨텍스트는 "Contributors Team"이며, 그 부모는 시스템 컨텍스트입니다.
- 팀 컨텍스트는 시스템 컨텍스트를 부모로 두고 채널 컨텍스트를 자식으로 둡니다. 예를 들어 "Contributors Team"은 팀 컨텍스트이고, 부모는 시스템 컨텍스트이며, 자식으로는 "Developers Hangout", "Reception", "Marketing" 같은 채널 컨텍스트가 있습니다.
사용자가 특정 컨텍스트에서 특정 동작을 수행할 수 있는지 판단할 때는, 현재 컨텍스트와 그 상위 컨텍스트들에서 해당 사용자에게 배정된 모든 역할의 권한을 합집합으로 계산합니다. 덕분에 권한이 스코프 계층을 따라 아래로 전파됩니다. 예를 들어 어떤 사용자가 시스템 컨텍스트의 역할을 통해 manage_public_channel_properties 권한을 부여받으면, 그 사용자는 자신이 속한 모든 팀의 모든 채널에서 공개 채널 속성을 관리할 권한을 갖습니다.
스킴
스킴(scheme)은 어떤 컨텍스트와 그 모든 하위 컨텍스트에서 사용자에게 적용되는 기본 역할을 정의합니다. 스킴은 특정 컨텍스트에 대해 별도로 정의하거나, 정의하지 않으면 부모 컨텍스트 스킴의 해당 부분이 적용되며, 결국 계층을 따라 올라가 시스템 전체 기본값을 제공하는 System Scheme(시스템 스킴)에 도달합니다. 예를 들어 Team A에 팀 스코프 스킴이 정의되어 있지 않으면, Team A의 모든 컨텍스트에는 시스템 스킴이 기본값을 제공합니다.
또한 컨텍스트에서는 항상 가장 낮은 스코프의 스킴이 우선합니다. 예를 들어 Team B에 팀 스코프 스킴이 있다면, Team B의 모든 컨텍스트에서 그 스킴이 시스템 스킴의 기본값보다 우선합니다.
데이터 구조
권한
Mattermost의 권한은 서버 코드베이스의 속성이며 동적으로 생성하거나 수정할 수 없습니다. 현재 제공되는 권한 집합은 아래 표와 같습니다.
Mattermost 권한
| 이름 (i18n) | 스코프 | 설명 |
|---|---|---|
invite_user | 팀 | Send Email Invite 또는 Get Team Invite Link를 사용해 팀에 사용자를 초대합니다. |
add_user_to_team | 팀 | 기존 서버 사용자를 현재 팀에 추가합니다. |
manage_slash_commands | 시스템 | 자신의 슬래시 명령어를 생성·편집·삭제합니다. |
manage_others_slash_commands | 시스템 | 다른 사용자의 슬래시 명령어를 편집하거나 삭제합니다. |
create_public_channel | 팀 | 공개 채널을 만듭니다. |
create_private_channel | 팀 | 비공개 채널을 만듭니다. |
manage_public_channel_members | 채널 | 공개 채널 멤버를 관리합니다. |
manage_private_channel_members | 채널 | 비공개 채널 멤버를 관리합니다. |
assign_system_admin_role | 시스템 | 다른 사용자에게 시스템 관리자 역할을 부여합니다. |
manage_roles | 시스템 | 다른 사용자의 시스템 전체 역할을 관리합니다. |
manage_team_roles | 팀 | 팀 멤버를 추가하고 제거합니다. |
manage_channel_roles | 채널 | 채널 멤버를 추가하고 제거합니다. |
manage_system | 시스템 | 시스템 콘솔에 접근합니다. |
sysconsole_read_usermanagement_system_roles | 시스템 | 시스템 역할을 조회합니다. |
sysconsole_write_usermanagement_system_roles | 시스템 | 시스템 역할을 추가·제거하고 배정합니다. |
create_direct_channel | 시스템 | 다이렉트 메시지 채널을 엽니다. |
create_group_channel | 시스템 | 그룹 메시지 채널을 엽니다. |
manage_public_channel_properties | 채널 | 공개 채널의 이름·헤더·목적을 편집하고 공개 채널 체크리스트를 만듭니다. |
manage_private_channel_properties | 채널 | 비공개 채널의 이름·헤더·목적을 편집하고 비공개 채널 체크리스트를 만듭니다. |
list_public_teams | 시스템 | 메인 메뉴에서 접근하는 Join Another Team 메뉴에 표시되는 공개 팀을 조회합니다. |
join_public_teams | 시스템 | 메인 메뉴에서 접근하는 Join Another Team 메뉴에 표시되는 공개 팀에 참여합니다. |
list_private_teams | 시스템 | 메인 메뉴에서 접근하는 Join Another Team 메뉴에 표시되는 비공개 팀을 조회합니다. |
join_private_teams | 시스템 | 메인 메뉴에서 접근하는 Join Another Team 메뉴에 표시되는 비공개 팀에 참여합니다. |
list_team_channels | 팀 | 팀의 공개 채널 목록을 조회합니다. |
join_public_channels | 팀 | 공개 채널에 참여합니다. |
delete_public_channel | 채널 | 공개 채널을 보관합니다. |
delete_private_channel | 채널 | 비공개 채널을 보관합니다. |
edit_other_users | 시스템 | 다른 사용자의 user 객체 값을 편집합니다. |
read_channel | 채널 | 채널의 게시물을 조회합니다. |
read_channel_contents | 채널 | 채널의 콘텐츠를 읽습니다. |
read_public_channel | 팀 | 팀의 공개 채널을 조회하고 접근합니다. |
add_reaction | 채널 | 게시물에 이모지 반응을 추가합니다. |
remove_reaction | 채널 | 게시물에서 이모지 반응을 제거합니다. |
remove_others_reactions | 채널 | 게시물에서 다른 사용자의 이모지 반응을 제거합니다. |
permanent_delete_user(사용 중단됨) | 시스템 | 다른 사용자를 영구 삭제합니다. |
upload_file | 채널 | 게시물에 파일 첨부를 업로드합니다. |
get_public_link | 시스템 | 게시물의 퍼머링크를 가져옵니다. |
manage_incoming_webhooks | 팀 | 자신의 인커밍 웹훅을 생성·편집·삭제합니다. |
manage_outgoing_webhooks | 팀 | 자신의 아웃고잉 웹훅을 생성·편집·삭제합니다. |
manage_others_webhooks(사용 중단됨) | 팀 | 다른 사용자의 인커밍 또는 아웃고잉 웹훅을 편집하고 삭제합니다. |
manage_others_incoming_webhooks | 팀 | 다른 사용자의 인커밍 웹훅을 편집하고 삭제합니다. |
manage_others_outgoing_webhooks | 팀 | 다른 사용자의 아웃고잉 웹훅을 편집하고 삭제합니다. |
manage_oauth | 시스템 | 자신의 OAuth 2.0 앱을 생성·편집·삭제합니다. |
manage_system_wide_oauth | 시스템 | 다른 사용자의 OAuth 2.0 앱을 편집하거나 삭제합니다. |
create_post | 채널 | 채널에 게시합니다. |
create_post_public | 채널 | 채널 내에 시스템 메시지를 만듭니다. |
create_post_ephermal | 채널 | 채널 내에 임시(ephemeral) 메시지를 만듭니다. |
edit_post | 채널 | 작성자가 자신의 게시물을 편집합니다. |
edit_others_posts | 채널 | 다른 사용자의 게시물을 편집합니다. |
delete_post | 채널 | 작성자가 자신의 게시물을 삭제합니다. |
delete_others_posts | 채널 | 다른 사용자의 게시물을 삭제합니다. |
remove_user_from_team | 팀 | 팀에서 사용자를 제거합니다. |
create_team | 시스템 | 팀을 만듭니다. |
manage_team | 팀 | Team Settings(팀 설정)에 접근합니다. |
import_team | 시스템 | Team Settings에서 팀을 가져옵니다. |
view_team | 팀 | Team 객체를 읽습니다. |
create_bot | 팀 | 봇 계정을 만듭니다. |
assign_bot | 팀 | 봇을 만든 사용자가 아닌 다른 사용자에게 봇을 배정합니다. |
read_bot | 팀 | 자신이 만든 봇을 조회합니다. |
read_others_bots | 팀 | 다른 사용자가 만든 봇을 조회합니다. |
manage_bots | 팀 | 자신의 봇을 편집하고 삭제합니다. |
manage_others_bots | 팀 | 다른 사용자가 만든 봇을 편집하고 삭제합니다. |
view_members | 팀 | 팀의 모든 멤버 목록을 조회합니다. |
list_users_without_team | 시스템 | 팀에 속하지 않은 사용자 목록을 조회합니다. |
create_user_access_token | 시스템 | 사용자 액세스 토큰을 만듭니다. |
read_user_access_token | 시스템 | ID로 사용자 액세스 토큰을 읽습니다. |
revoke_user_access_token | 시스템 | 사용자 액세스 토큰을 취소합니다. |
manage_jobs | 시스템 | 작업을 생성하고 취소합니다. |
create_emojis | 팀 | 커스텀 이모지를 만듭니다. |
delete_emojis | 팀 | 자신이 만든 커스텀 이모지를 삭제합니다. |
delete_others_emojis | 팀 | 다른 사용자가 만든 커스텀 이모지를 삭제합니다. |
invite_guest | 시스템 | 이메일 초대로 게스트 사용자를 초대하거나 기존 게스트를 팀에 추가합니다. |
promote_guest | 시스템 | 게스트를 멤버 사용자로 승격합니다. |
demote_to_guest | 시스템 | 멤버 사용자를 게스트로 강등합니다. |
manage_remote_clusters(v5.36에서 사용 중단됨) | 시스템 | 공유 채널용 원격 클러스터를 추가·제거하고 조회합니다. v5.36에서 사용이 중단되었으며 manage_secure_connections로 이름이 변경되었습니다. |
manage_shared_channels | 시스템 | 원격 서버와의 기존 연결을 통해 채널을 공유하거나 공유를 해제합니다. |
manage_secure_connections | 시스템 | 원격 서버로의 보안 연결을 생성·관리·제거합니다. |
manage_post_bleve_indexes_job | 시스템 | Bleve 게시물 인덱싱 작업의 상태를 관리합니다. |
manage_data_retention_job | 시스템 | 데이터 보존 작업의 상태를 관리합니다. |
manage_compliance_export_job | 시스템 | 컴플라이언스 내보내기 작업의 상태를 관리합니다. |
manage_elasticsearch_post_indexing_job | 시스템 | Elasticsearch 게시물 인덱싱 작업의 상태를 관리합니다. |
manage_elasticsearch_post_aggregation_job | 시스템 | Elasticsearch 게시물 집계 작업의 상태를 관리합니다. |
manage_ldap_sync_job | 시스템 | LDAP 동기화 작업의 상태를 관리합니다. |
add_bookmark_public_channel | 채널 | 공개 채널에 북마크를 추가합니다. |
add_bookmark_private_channel | 채널 | 비공개 채널에 북마크를 추가합니다. |
edit_bookmark_public_channel | 채널 | 공개 채널의 북마크를 변경합니다. |
edit_bookmark_private_channel | 채널 | 비공개 채널의 북마크를 변경합니다. |
delete_bookmark_public_channel | 채널 | 공개 채널의 북마크를 삭제합니다. |
delete_bookmark_private_channel | 채널 | 비공개 채널의 북마크를 삭제합니다. |
order_bookmark_public_channel | 채널 | 공개 채널의 북마크 순서를 변경합니다. |
order_bookmark_private_channel | 채널 | 비공개 채널의 북마크 순서를 변경합니다. |
manage_channel_banner | 채널 | 채널 배너를 관리합니다. |
manage_channel_access_rules | 채널 | 채널의 속성 기반 접근 제어 규칙을 관리합니다. |
manage_team_access_rules | 팀 | Team Settings에서 팀의 속성 기반 팀·채널 멤버십 정책을 관리합니다. |
Roles 필드
역할은 사용자가 특정 컨텍스트에서 갖는 멤버십을 나타내는 객체에 적용됩니다. 이 역할은 User, TeamMember, ChannelMember, Schemes 테이블의 Roles 필드에서 참조됩니다.
TeamMember와 ChannelMember 테이블에서는 Roles 필드가 커스텀 역할을 담고, SchemeAdmin과 SchemeUser 불리언 값이 해당 멤버 객체가 관련 스킴(해당 팀에 배정된 기본 스킴 또는 커스텀 스킴)에서 각각의 역할을 상속해야 하는지를 나타냅니다.
Roles 테이블
역할은 동적이며 사용자가 구성할 수 있으므로 다음 필드를 갖는 데이터베이스 테이블이 필요합니다.
Id(자동 증가, 기본 키)Name(문자 제약이 있는 고유 문자열, 예: "team_user")Display Name(문자열)Description(문자열)Permissions(문자열): 공백으로 구분된 권한 이름Scheme Managed(불리언): 이 역할이 스킴의 일부로 관리되는지 여부를 나타냅니다.BuiltIn(불리언): 이 역할이 Mattermost 시스템에 내장되어 있어 사용자가 제거할 수 없는지 여부를 나타냅니다.
내장 역할
시스템 스킴은 제품에 내장되어 있으며, 그 역할들은 Roles 테이블에서 BuiltIn: true로 정의됩니다. Mattermost API를 사용하면 역할 이름으로 권한 목록을 조회할 수 있습니다.
기본 권한이 설정된 다음 내장 역할을 사용할 수 있습니다.
channel_admin
manage_private_channel_membersread_public_channel_groupsuse_channel_mentionscreate_postuse_group_mentionsadd_reactionread_private_channel_groupsremove_reactionmanage_public_channel_membersmanage_channel_rolesadd_bookmark_public_channeledit_bookmark_public_channeldelete_bookmark_public_channelorder_bookmark_public_channeladd_bookmark_private_channeledit_bookmark_private_channeldelete_bookmark_private_channelorder_bookmark_private_channelmanage_channel_bannermanage_channel_access_rules
channel_guest
read_channelread_channel_contentsadd_reactionremove_reactionupload_fileedit_postcreate_postuse_channel_mentions
channel_user
manage_public_channel_propertiesuse_group_mentionsadd_reactiondelete_private_channelmanage_private_channel_membersread_private_channel_groupsdelete_public_channelread_public_channel_groupsuse_channel_mentionsread_channelread_channel_contentsdelete_postget_public_linkremove_reactionmanage_public_channel_membersupload_filemanage_private_channel_propertiescreate_postedit_postadd_bookmark_public_channeledit_bookmark_public_channeldelete_bookmark_public_channelorder_bookmark_public_channeladd_bookmark_private_channeledit_bookmark_private_channeldelete_bookmark_private_channelorder_bookmark_private_channel
system_admin
manage_others_slash_commandssysconsole_write_user_management_permissionsedit_brandremove_reactionmanage_incoming_webhookssysconsole_write_user_management_groupscreate_public_channelmanage_private_channel_memberssysconsole_write_authenticationjoin_private_teamscreate_post_ephemerallist_users_without_teamsysconsole_write_reportingjoin_public_channelsinvite_guestlist_private_teamssysconsole_write_user_management_channelsmanage_others_botsread_user_access_tokenadd_user_to_teamview_membersedit_postdemote_to_guestdelete_others_postssysconsole_write_pluginsdelete_private_channelsysconsole_read_user_management_system_rolessysconsole_read_user_management_usersrevoke_user_access_tokenread_others_botsread_public_channel_groupssysconsole_write_user_management_teamssysconsole_write_billingconvert_public_channel_to_privateremove_user_from_teammanage_teamadd_reactionmanage_oauthlist_team_channelscreate_teamread_jobsinvite_usermanage_shared_channelsremove_others_reactionsmanage_secure_connectionssysconsole_write_user_management_userssysconsole_read_experimentalsysconsole_write_complianceedit_others_postsassign_botmanage_botsmanage_others_outgoing_webhooksmanage_system_wide_oauthdelete_others_emojismanage_others_incoming_webhookspromote_guestsysconsole_write_experimentalsysconsole_read_pluginscreate_group_channelsysconsole_read_environmentmanage_rolesuse_channel_mentionsmanage_public_channel_propertiesmanage_channel_rolesget_public_linksysconsole_read_billingsysconsole_write_integrationsdownload_compliance_export_resultmanage_slash_commandsassign_system_admin_rolecreate_postdelete_postcreate_direct_channellist_public_teamscreate_post_publicread_private_channel_groupssysconsole_read_integrationsread_other_users_teamsmanage_jobssysconsole_read_sitemanage_outgoing_webhookssysconsole_write_environmentmanage_systemsysconsole_read_user_management_permissionsmanage_public_channel_memberssysconsole_write_aboutimport_teamsysconsole_write_user_management_system_rolessysconsole_read_reportingupload_fileread_channelread_channel_contentssysconsole_read_user_management_teamsdelete_emojismanage_private_channel_propertiesview_teamsysconsole_read_user_management_groupscreate_private_channelcreate_botjoin_public_teamsdelete_public_channelread_public_channelsysconsole_read_aboutread_botssysconsole_read_authenticationedit_other_userssysconsole_read_user_management_channelsconvert_private_channel_to_publicuse_group_mentionscreate_user_access_tokensysconsole_write_sitemanage_team_rolessysconsole_read_compliancecreate_emojismanage_post_bleve_indexes_jobmanage_data_retention_jobmanage_compliance_export_jobmanage_elasticsearch_post_indexing_jobmanage_elasticsearch_post_aggregation_jobmanage_ldap_sync_jobadd_bookmark_public_channeledit_bookmark_public_channeldelete_bookmark_public_channelorder_bookmark_public_channeladd_bookmark_private_channeledit_bookmark_private_channeldelete_bookmark_private_channelorder_bookmark_private_channelmanage_channel_bannermanage_channel_access_rules
system_custom_group_admin
createeditdeletemanage membersrestore
system_shared_channel_manager
manage_shared_channels
system_guest
create_group_channelcreate_direct_channel
system_manager
sysconsole_write_user_management_permissionssysconsole_read_aboutsysconsole_read_user_management_channelsjoin_private_teamsdelete_private_channelview_teamread_jobssysconsole_read_user_management_teamssysconsole_read_pluginsmanage_channel_rolesmanage_public_channel_membersremove_user_from_teamsysconsole_read_environmentlist_private_teamsmanage_private_channel_membersmanage_private_channel_propertiesedit_brandadd_user_to_teamconvert_public_channel_to_privateread_private_channel_groupssysconsole_write_environmentmanage_jobssysconsole_read_reportingread_public_channelmanage_teamread_channelsysconsole_read_integrationread_public_channel_groupslist_public_teamsmanage_team_rolessysconsole_read_user_management_groupsmanage_public_channel_propertiessysconsole_write_user_management_groupssysconsole_read_user_management_permissionssysconsole_write_sitesysconsole_read_sitesysconsole_write_user_management_channelssysconsole_write_integrationsdelete_public_channelsysconsole_write_user_management_teamsjoin_public_teams
system_post_all
create_postuse_channel_mentionsuse_group_mentions
system_post_all_public
create_post_publicuse_group_mentionsuse_channel_mentions
system_read_only_admin
sysconsole_read_complianceread_other_users_teamssysconsole_read_reportinglist_private_teamssysconsole_read_experimentalread_jobsread_public_channelview_teamsysconsole_read_user_management_userssysconsole_read_pluginssysconsole_read_user_management_teamsread_public_channel_groupssysconsole_read_user_management_channelssysconsole_read_user_management_permissionssysconsole_read_aboutdownload_compliance_export_resultread_channelsysconsole_read_authenticationsysconsole_read_sitelist_public_teamssysconsole_read_integrationsread_private_channel_groupssysconsole_read_environmentsysconsole_read_user_management_groups
system_user
list_public_teamsjoin_public_teamscreate_direct_channelcreate_group_channelview_memberscreate_teamcreate_emojisdelete_emojis
system_user_access_token
create_user_access_tokenread_user_access_tokenrevoke_user_access_token
system_user_manager
manage_public_channel_memberssysconsole_write_user_management_groupsmanage_private_channel_propertiesread_channelsysconsole_read_authenticationmanage_private_channel_membersread_jobsview_teamsysconsole_read_user_management_groupslist_private_teamsjoin_public_teamsmanage_teamlist_public_teamsadd_user_to_teamsysconsole_read_user_management_channelssysconsole_write_user_management_teamsread_public_channelsysconsole_read_user_management_permissionsmanage_public_channel_propertiesjoin_private_teamsconvert_public_channel_to_privatemanage_channel_rolessysconsole_read_user_management_teamsread_public_channel_groupsdelete_public_channelremove_user_from_teammanage_team_rolesdelete_private_channelsysconsole_write_user_management_channelsread_private_channel_groups
team_admin
remove_user_from_teammanage_others_slash_commandsmanage_team_rolesmanage_public_channel_membersuse_group_mentionsmanage_others_outgoing_webhooksmanage_slash_commandsmanage_teammanage_others_incoming_webhooksmanage_channel_rolesread_public_channel_groupsremove_reactiondelete_postmanage_outgoing_webhooksuse_channel_mentionsmanage_incoming_webhooksdelete_others_postsread_private_channel_groupscreate_postmanage_private_channel_membersconvert_public_channel_to_privateadd_reactionimport_teamadd_bookmark_public_channeledit_bookmark_public_channeldelete_bookmark_public_channelorder_bookmark_public_channeladd_bookmark_private_channeledit_bookmark_private_channeldelete_bookmark_private_channelorder_bookmark_private_channelmanage_channel_bannermanage_channel_access_rulesmanage_team_access_rules
team_guest
view_team
team_post_all
create_postuse_group_mentionsuse_channel_mentions
team_post_all_public
use_group_mentionscreate_post_publicuse_channel_mentions
team_user
invite_useradd_user_to_teamlist_team_channelsjoin_public_channelsread_public_channelview_teamcreate_public_channelcreate_private_channel
Schemes 테이블
스킴은 동적이며 사용자가 구성할 수 있으므로 다음 필드를 갖는 데이터베이스 테이블이 필요합니다.
Id(자동 증가, 기본 키)Name(문자 제약이 있는 고유 문자열, 예: "corporate_scheme")DisplayNameDescription(문자열)Scope(문자열): Team 또는 ChannelTeam Admin Role(문자열): 채널 스코프인 경우 비어 있습니다.Team User Role(문자열): 채널 스코프인 경우 비어 있습니다.Team Guest Role(문자열): 채널 스코프인 경우 비어 있습니다.Channel Admin Role(문자열): 항상 제공됩니다.Channel User Role(문자열): 항상 제공됩니다.