> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sifi.life/llms.txt
> Use this file to discover all available pages before exploring further.

# 공유 & 권한 관리

> 이 문서는 **[Genie Space](/blog/guides/genie-space/overview)** 섹션의 일부입니다.

***

## 개요

Genie Space를 구성하고 테스트를 완료한 후, 적절한 권한으로 사용자에게 공유해야 합니다. 이 과정에서 권한 레벨의 정확한 이해, SME 검증, 데이터 접근 제어가 중요합니다.

### 왜 권한 모델을 정확히 이해해야 하는가

Genie Space의 권한은 **두 개의 독립적인 계층** 으로 구성됩니다. 이 구조를 이해하지 못하면 "Space에 접근할 수 있는데 쿼리가 안 된다"거나 "A 사용자는 되는데 B 사용자는 안 된다"는 문제에 직면합니다.

1. **Space 권한 계층**: Genie Space 자체에 대한 접근/실행/편집/관리 권한 (CAN VIEW/RUN/EDIT/MANAGE)
2. **데이터 권한 계층**: Unity Catalog의 테이블/뷰에 대한 SELECT 권한

두 계층이 **모두 충족** 되어야 사용자가 정상적으로 질문하고 결과를 받을 수 있습니다. Space 권한만 있고 UC 데이터 권한이 없으면 쿼리 실행 시 오류가 발생합니다.

> **참고**
> **핵심 원리**: Genie Space의 권한은 "데이터를 볼 수 있는 새로운 경로"를 만드는 것이 아닙니다. 기존 Unity Catalog 거버넌스 위에 "자연어 인터페이스"를 얹는 것입니다. UC에서 접근할 수 없는 데이터는 Genie Space에서도 접근할 수 없습니다.

***

## 권한 레벨 상세

Genie Space는 4단계 권한 레벨을 제공합니다. 각 레벨은 하위 레벨의 모든 권한을 포함합니다.

| 권한             | 할 수 있는 작업                                 | 권장 대상                   |
| -------------- | ----------------------------------------- | ----------------------- |
| **CAN VIEW**   | Space 내용 열람, 다른 사용자의 대화 기록 확인             | 이해관계자, 감사자              |
| **CAN RUN**    | 질문 입력, SQL 실행, 결과 다운로드, 피드백 제출            | **일반 비즈니스 사용자 (기본 권장)** |
| **CAN EDIT**   | 인스트럭션 편집, 테이블/컬럼 설명 수정, SQL Expression 추가 | 도메인 전문가(SME), 데이터 분석가   |
| **CAN MANAGE** | 모니터링 탭 접근, 권한 관리, Space 설정 변경, 삭제         | Space 소유자, 관리자          |

> **주의**
> **CAN RUN** 과 **CAN VIEW** 의 차이에 주의하세요. CAN VIEW 사용자는 질문을 입력할 수 없고, 다른 사용자의 대화만 열람할 수 있습니다. 대부분의 비즈니스 사용자에게는 **CAN RUN** 이상의 권한이 필요합니다.

***

## 공유 절차

### Step 1: Share 다이얼로그 열기

1. Space 우측 상단의 **Share** 버튼을 클릭합니다.
   * *화면 설명: "Share this Genie Space" 다이얼로그가 나타나며, 현재 공유된 사용자 목록과 각각의 권한 레벨이 표시됩니다.*

### Step 2: 사용자/그룹 추가

2. 검색 필드에 사용자 이름, 이메일, 또는 그룹명을 입력합니다.
3. 목록에서 대상을 선택합니다.
4. 드롭다운에서 적절한 권한 레벨을 선택합니다.
5. **Add** 버튼을 클릭합니다.

### Step 3: 알림 및 링크 공유

6. 공유 시 해당 사용자에게 **이메일 알림** 이 자동 발송됩니다.
7. **Copy link** 버튼으로 직접 공유 링크를 생성할 수도 있습니다.

> **팁**
> 개별 사용자보다 **그룹(Group)** 단위로 공유하는 것을 권장합니다. 팀원 변동 시 그룹 멤버십만 관리하면 되므로 운영 부담이 줄어듭니다.

***

## SME(Subject Matter Expert) 검증 프로세스

Space를 전체 사용자에게 공개하기 전에, 도메인 전문가(SME)의 검증을 거치는 것이 중요합니다.

### 권장 검증 절차

| 단계 | 작업                                          | 담당              |
| -- | ------------------------------------------- | --------------- |
| 1  | Space 초기 구성 완료 (테이블, 인스트럭션, SQL Expression) | Space 구축자       |
| 2  | SME에게 **CAN EDIT** 권한으로 공유                  | Space 구축자       |
| 3  | SME가 핵심 비즈니스 질문 10-15개를 직접 테스트              | SME             |
| 4  | 오답에 대해 피드백 제출 또는 직접 인스트럭션 수정                | SME             |
| 5  | 벤치마크 정확도 80% 이상 달성 확인                       | Space 구축자 + SME |
| 6  | 일반 사용자에게 **CAN RUN** 권한으로 공유                | Space 구축자       |

> **참고**
> SME 검증 없이 공유하면, 사용자들이 부정확한 답변을 받고 Space에 대한 신뢰를 잃을 수 있습니다. 첫인상이 중요하므로, **최소 80% 벤치마크 정확도** 를 달성한 후 공유하세요.

***

## Space 복제(Clone)

기존 Space를 기반으로 새로운 Space를 만들 때 복제 기능을 활용합니다.

**복제 절차:**

1. 복제할 Space를 엽니다.
2. 우측 상단의 케밥 메뉴(...)를 클릭합니다.
3. **Clone** 을 선택합니다.
   * *화면 설명: "Clone Genie Space" 다이얼로그가 나타나며, 새 Space의 이름과 저장 위치를 지정할 수 있습니다.*
4. 새 Space 이름을 입력하고 저장 위치를 선택합니다.
5. **Clone** 을 클릭합니다.

### 복제 시 포함되는 항목

| 항목              | 복제 여부             |
| --------------- | ----------------- |
| 테이블/뷰 구성        | 포함                |
| 컬럼 설명 및 동의어     | 포함                |
| 인스트럭션           | 포함                |
| SQL Expressions | 포함                |
| 조인 관계           | 포함                |
| 벤치마크            | 포함                |
| 권한(공유 설정)       | **미포함**(새로 설정 필요) |
| 대화 기록           | **미포함**           |
| 모니터링 데이터        | **미포함**           |

> **팁**
> 복제는 다음 상황에서 유용합니다:

* 유사한 데이터 도메인의 새 Space를 빠르게 만들 때
* 프로덕션 Space를 변경하기 전에 테스트 사본을 만들 때
* 지역/팀별로 약간 다른 버전의 Space가 필요할 때

> **주의**
> **복제 후 반드시 벤치마크를 실행하세요.** 복제된 Space의 벤치마크는 포함되지만, Warehouse나 데이터 접근 환경이 다를 수 있으므로 정상 동작을 확인해야 합니다.

### 실전 시나리오: 프로덕션 Space 안전하게 변경하기

프로덕션 Space에 큰 변경(테이블 추가/제거, 인스트럭션 대폭 수정)을 가할 때 권장하는 절차:

1. 프로덕션 Space를 **Clone** 합니다.
2. 클론에서 변경사항을 적용합니다.
3. 벤치마크를 실행하여 기존 정확도가 유지되는지 확인합니다.
4. 확인이 끝나면 프로덕션 Space에 동일한 변경을 적용합니다.
5. 프로덕션에서도 벤치마크를 재실행하여 최종 확인합니다.

***

## End User에게 공유할 때 주의사항

### 사용자가 볼 수 있는 데이터 범위 — 보안 고려사항

Genie Space를 공유할 때 가장 중요한 보안 원칙은 **"Space가 보여줄 수 있는 데이터"와 "사용자가 볼 수 있는 데이터"는 다를 수 있다** 는 점입니다.

Space 관리자가 10개 테이블을 추가했더라도, 사용자 A는 3개 테이블에만 SELECT 권한이 있을 수 있습니다. 이 경우 사용자 A가 권한 없는 테이블의 데이터를 질문하면 오류가 발생합니다.

> **주의**
> **행/열 수준 보안도 적용됩니다**: Unity Catalog에서 Row Filter나 Column Mask가 설정된 테이블은 Genie Space에서도 동일하게 적용됩니다. 예를 들어, "영업1팀"에 소속된 사용자가 Row Filter로 자기 팀 데이터만 볼 수 있도록 설정되어 있다면, Genie Space에서도 자기 팀 데이터만 조회됩니다.

### 데이터 접근 권한

Genie Space 권한과 **Unity Catalog 데이터 접근 권한은 별개** 입니다.

| 시나리오                                   | 결과               |
| -------------------------------------- | ---------------- |
| Space CAN RUN 권한 있음 + 테이블 SELECT 권한 있음 | 정상 작동            |
| Space CAN RUN 권한 있음 + 테이블 SELECT 권한 없음 | 쿼리 실행 시 권한 오류 발생 |
| Space CAN RUN 권한 없음 + 테이블 SELECT 권한 있음 | Space에 접근 불가     |

> **주의**
> 사용자가 Space에서 질문할 때, SQL은 **해당 사용자의 Unity Catalog 권한** 으로 실행됩니다. Space 관리자가 볼 수 있는 데이터라도 사용자에게 권한이 없으면 오류가 발생합니다. 공유 전에 대상 사용자/그룹에게 필요한 테이블에 대한 SELECT 권한이 있는지 확인하세요.

### 권한 문제 디버깅

사용자가 "권한 오류"를 보고하면 다음 순서로 확인하세요:

1. **Space 권한 확인**: Share 다이얼로그에서 해당 사용자가 CAN RUN 이상인지 확인
2. **UC 데이터 권한 확인**: `SHOW GRANTS ON TABLE <table_name>` 또는 INFORMATION\_SCHEMA에서 해당 사용자/그룹의 SELECT 권한 확인
3. **Warehouse 접근 확인**: 사용자가 해당 Warehouse에 접근 가능한지 확인 (Consumer Access Entitlement)
4. **Row Filter/Column Mask 확인**: 데이터는 보이지만 특정 행/열이 필터링되는지 확인

### Embedded Credentials 동작 방식

SQL Warehouse에 Embedded Credentials가 설정된 경우, 쿼리는 해당 Credential의 권한으로 실행됩니다. 이 설정은 "모든 사용자가 동일한 데이터를 봐야 하는" 시나리오에서 유용합니다.

| 항목            | Embedded Credentials 없음 | Embedded Credentials 있음  |
| ------------- | ----------------------- | ------------------------ |
| **쿼리 실행 주체**  | 질문한 사용자 본인              | Embedded Credential 소유자  |
| **데이터 접근 범위** | 사용자의 UC 권한 범위           | Credential 소유자의 UC 권한 범위 |
| **사용 사례**     | 사용자별 데이터 접근 제어가 필요할 때   | 모든 사용자가 동일한 데이터를 봐야 할 때  |

***

## 폴더 관리

새로 생성된 Space는 기본적으로 **생성자의 사용자 폴더** 에 저장됩니다.

**공유 폴더로 이동하는 방법:**

1. 워크스페이스 브라우저에서 Space를 찾습니다.
2. 우클릭하여 **Move** 를 선택합니다.
3. 팀 공유 폴더(예: `/Shared/Genie Spaces/영업팀`)를 선택합니다.
4. **Move** 를 클릭합니다.

> **팁**
> 팀 공용 Space는 반드시 공유 폴더로 이동하세요. 생성자가 조직을 떠나도 Space가 유지되고, 다른 관리자가 접근할 수 있습니다.

***

## 권한 설정 체크리스트

사용자에게 공유하기 전에 다음을 확인하세요:

* [ ] 대상 사용자/그룹이 **Consumer Access** 또는 **Databricks SQL** 워크스페이스 권한(Entitlement)을 보유하는가?
* [ ] 대상 사용자/그룹에게 Space에 포함된 **모든 테이블/뷰에 대한 SELECT** 권한이 있는가?
* [ ] Row Filter/Column Mask가 적용된 테이블이 있다면, 사용자별로 의도한 대로 필터링되는지 확인했는가?
* [ ] Embedded Credentials 사용 여부를 결정했는가? (사용자별 데이터 제어 vs 동일 데이터 노출)
* [ ] 테스트 사용자 1명으로 먼저 접근 테스트를 해봤는가?

***

## 공유 베스트 프랙티스

| 항목           | 권장 사항                                                               |
| ------------ | ------------------------------------------------------------------- |
| **권한 원칙**    | 최소 권한 원칙 적용 (일반 사용자는 CAN RUN)                                       |
| **그룹 활용**    | 개인보다 그룹 단위로 공유. SCIM으로 IdP 그룹을 자동 동기화하면 운영 부담 최소화                   |
| **SME 검증**   | 공유 전 반드시 도메인 전문가 검증                                                 |
| **폴더 정리**    | 공유 폴더에 팀/도메인별로 정리                                                   |
| **UC 권한 확인** | 공유 대상의 Unity Catalog 권한 사전 확인. INFORMATION\_SCHEMA를 활용한 권한 점검 쿼리 활용 |
| **안내 문서**    | Space 설명에 사용법과 제한사항 명시                                              |
| **점진적 확대**   | 처음에는 소수 파일럿 그룹에게만 공유. 피드백 수집 후 점진적으로 확대                             |
| **온보딩 가이드**  | 새 사용자에게 "이 Space에서 할 수 있는 질문 유형"과 "할 수 없는 것"을 명확히 안내                |
