권한과 그룹
권한은 한 사람씩이 아니라 항상 그룹에 부여합니다. 프로젝트, 데이터베이스, 테이블에 지정한 수준은 그 아래의 모든 항목에 적용되며, 나중에 만들어지는 항목도 포함됩니다.
네 가지 수준
섹션 제목: “네 가지 수준”| 수준 | 허용 범위 |
|---|---|
| 액세스 권한 없음 | 없음: 리소스가 보이지 않음 |
| 읽기 | 행 보기와 댓글 달기, 개인 보기 만들기, 스키마와 대시보드 확인, 자신의 질문 만들기와 저장, 읽기 전용 SQL 작성과 개인 쿼리 저장 |
| 편집 | 위 권한에 더해 행 생성, 수정, 삭제 |
| 관리 | 위 권한에 더해 스키마 변경, 공유 보기·대시보드 만들기, 링크로 대시보드 공유, 질문과 쿼리 공유, SQL 뷰·자동화·연동·토큰 만들기. SQL로는 쓰기를 포함해 데이터베이스 전체에 접근 |
권한은 합산됩니다. 한 사람은 소속 그룹 중 하나가 부여하는 가장 높은 수준을 받습니다. 테이블에 데이터베이스보다 낮은 권한을 주면 그 테이블은 “세분화”됩니다.
항상 존재하는 그룹이 두 개 있습니다. 모든 것을 관리하는 관리자, 그리고 모든 계정이 속하는 모든 사용자입니다. 모든 사용자 그룹에 부여한 권한은 모두가 갖게 됩니다.
필드 단위까지
섹션 제목: “필드 단위까지”수준 그리드 아래의 필드에서 특정 그룹에 열을 숨기거나, 그 그룹이 열을 수정하지 못하게 할 수 있습니다. 이 화면에서는 특정 사람이 실제로 무엇을 보는지, 어떤 그룹 때문인지도 확인할 수 있습니다.
숨겨진 필드는 어디에도 나타나지 않습니다. 그리드, 보기, API, MCP, 기록, 인터페이스에서 작성한 SQL, SQL 뷰 모두에서 빠집니다. 이 필드로 필터링하거나 정렬하면 존재하지 않는 필드와 같은 응답을 받습니다.
행 단위까지
섹션 제목: “행 단위까지”필드 옆에 있는 행은 한 그룹에 테이블의 특정 행만 보여 줍니다. 그 조건은 보기의 필터와
같은 방식으로 씁니다. @me는 로그인한 사람을 가리킵니다.
commercial eq @me— 각 담당자는 자신의 고객만 봄;region in ["nord", "est"]— 한 팀은 자신의 지역만 봄;_created_by eq @me— 각자 자신이 만든 것만 봄.
권한은 합산됩니다. 한 사람은 자신이 속한 모든 그룹의 행을 보며, 규칙이 없는 그룹은 모든 행을 봅니다. 테이블의 구조를 관리하는 사람 — 관리 권한 — 은 항상 모든 행을 봅니다. 화면은 특정 사람이 몇 개의 행을 보는지, 어떤 그룹 때문인지 알려 줍니다.
자신의 규칙 밖에 있는 행은 그 사람에게 존재하지 않는 것과 같습니다. 보기, 대시보드, 검색, API, MCP, 기록 어디에도 나타나지 않으며, 수정하거나 삭제하거나 연결할 수도 없습니다. 그 사람이 만드는 행은 자신의 몫에 속해야 하지만, 행을 수정하면서 자신의 범위 밖으로 내보낼 수는 있습니다 — 동료에게 맡기는 작업처럼요. 공유 양식의 응답은 언제나 도착합니다.
SQL은 어떻게 되나요?
섹션 제목: “SQL은 어떻게 되나요?”인터페이스에서 SQL은 같은 권한을 따르며, PostgreSQL 자체가 이를 적용합니다. 관리 권한이 없으면 쿼리는 그 사람 전용 역할로 읽기 전용으로 실행되며, 접근할 수 없는 테이블은 존재하지 않고 숨겨진 필드는 거부되며, 테이블이 단독으로 쓰였든 스키마와 함께 쓰였든 그 사람의 행만 읽힙니다. SQL 뷰는 읽는 사람의 권한으로 읽히며, 쿼리를 공유하면 텍스트만 공유됩니다.
반면 데이터베이스에 대한 psql 직접 접속은 basedb가 통제하지 않습니다. 숨겨진 필드까지
모두 읽습니다. 제한은 제품의 접점(인터페이스, API, MCP)을 보호할 뿐, 데이터베이스에 SQL로
접근할 수 있는 사람을 막지는 않습니다. 이런 접근은 운영자가 설정하는 PostgreSQL GRANT로
관리합니다. 행 단위 규칙이 있는 테이블은 PostgreSQL의 행 단위 보안이 활성화되어 있으므로,
외부 도구를 위해 만든 역할은 BYPASSRLS 속성이나 자신만의 정책이 없으면 그 테이블의 어떤
행도 볼 수 없습니다.
계정과 로그인
섹션 제목: “계정과 로그인”- 계정은 임시 비밀번호로 만들어지며, 이 비밀번호는 한 번만 표시되고 첫 로그인 때 바꿔야 합니다.
- 로그인은 비밀번호로 하거나, 운영자가 설정한 OpenID Connect 공급자로 합니다.
- 관리 작업에는 권한 상승 세션이 필요합니다. 최근 5분 이내에 비밀번호를 다시 입력한 세션입니다.
- 세션은 폐기할 수 있으며, 세션을 폐기하면 그 세션의 액세스 토큰도 즉시 무효화됩니다.
내 설정
섹션 제목: “내 설정”왼쪽 아래 프로필 메뉴의 설정은 나에게만 적용됩니다.
| 탭 | 하는 일 |
|---|---|
| 프로필 | 표시 이름, 로그인 주소, 계정에 연결된 ID 공급자(연결 또는 연결 해제) |
| 보안 | 비밀번호 변경, 열려 있는 세션(하나씩 또는 모두 종료) |
| 모양 | 인터페이스 언어, 테마, 날짜 순서(25/09/2026 또는 2026-09-25), 캘린더의 주 시작 요일 |
| 알림 | 더 이상 받고 싶지 않은 알림 종류 |
| 토큰 | 모든 데이터베이스에서 내가 만든 연동 토큰, 마지막 사용 시각, 폐기 |
basedb는 20개 언어를 지원합니다. 프랑스어, 영어, 독일어, 스페인어, 이탈리아어, 포르투갈어(브라질), 네덜란드어, 폴란드어, 체코어, 스웨덴어, 덴마크어, 노르웨이어, 핀란드어, 루마니아어, 헝가리어, 튀르키예어, 우크라이나어, 일본어, 중국어(간체), 한국어입니다. 기본적으로 인터페이스는 브라우저 언어를 따르며, 모양 탭의 언어에서 다른 언어를 지정할 수 있습니다. 숫자와 날짜는 선택한 언어를 따릅니다.
링크에도 언어를 지정할 수 있습니다: basedb 주소 끝에 붙이는 ?lang=de는 로그인 화면, 양식,
공유 보기, 공유 대시보드를 독일어로 보여 줍니다. 사이트가 데모로 안내할 때 페이지의 언어를
그대로 쓰는 방식이 바로 이것입니다. 로그인한 뒤에는 basedb가 계정을 따릅니다: 모양에서
고른 언어, 없으면 브라우저 언어입니다.
테마는 브라우저마다 따로 저장되고, 언어, 날짜 순서, 주 시작 요일은 어느 기기에서든 그대로 적용됩니다. 주소를 바꾸거나 공급자를 연결하려면 권한 상승 세션이 필요합니다. 비밀번호 없이 공급자로 로그인하는 계정은 그 공급자의 주소를 유지합니다.
단일 적용 지점
섹션 제목: “단일 적용 지점”모든 접점(인터페이스, API, MCP, 공유 양식과 공유 보기, 자동화)은 코어에 있는 같은 권한 결정 지점을 거칩니다. 인터페이스 전용 비공개 경로는 없습니다. 화면에 표시되지 않는 것은 API가 반환하지 않았기 때문입니다.
반대도 마찬가지입니다. 화면은 거부될 기능을 제공하지 않습니다. 관리 권한이 없으면 스키마 화면은 버튼도 연필 아이콘도 없이 보기만 가능하고, 가져오기에서 테이블 만들기를 제안하지 않습니다. 행을 만들거나 삭제할 권한이 없으면 그리드에 행 추가 줄도 “삭제”도 표시되지 않습니다.
basedb는 AI 네이티브 소프트웨어 스튜디오 Eodia가 만든 자유 소프트웨어입니다.