# 権限

- Human documentation: [https://docs.univer.ai/ja-JP/guides/bases/features/core/permissions](https://docs.univer.ai/ja-JP/guides/bases/features/core/permissions)

- Agent Markdown: [https://docs.univer.ai/ja-JP/guides/bases/features/core/permissions.md](https://docs.univer.ai/ja-JP/guides/bases/features/core/permissions.md)

- Requested language: `ja-JP`

- Content language: `ja-JP`

- Documentation version: `1.2.0`

- Source: [bases/features/core/permissions.ja-JP.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/bases/features/core/permissions.ja-JP.mdx)

---

Base 全体、または個別のテーブル、フィールド、レコード、ビューを読み取り専用にできます。レポート表示や、一部のデータだけ編集を許可する場合に使用します。

これらの API を使う前に、Bases プラグインを登録し、`@univerjs-pro/bases/facade` をインポートしてください。

## Base を読み取り専用にする

```ts
const base = univerAPI.getActiveBase()
if (!base) throw new Error('Open a Base first')

await base.getPermission().setReadOnly()
console.log(base.getPermission().canEdit()) // false

await base.getPermission().setEditable()
```

## 個別のオブジェクトを制限する

例えば、1 つのテーブルを制限します。

```ts
const table = base.getTables()[0]
if (!table) throw new Error('Create a table first')

await table.getPermission().setReadOnly()
await table.getPermission().setEditable()
```

フィールド、レコード、ビューにも `getPermission()` があります。対応するプラグインを登録すると、ダッシュボードとピボットビューでも利用できます。オブジェクトを編集可能にしても親の制限は解除されません。例えば、レコードを編集可能にしても、読み取り専用テーブルの制限を上書きできません。

`setReadOnly()` と `setEditable()` は Promise を返すため、`await` が必要です。一括変更には `base.getPermission().setObjectPermissions()` を使います。引数は [Bases Facade](https://docs.univer.ai/ja-JP/reference/facade/base.md) を参照してください。

## コピー、エクスポート、コメント

Base レベルの権限ではコピー、エクスポート、コメントも制御できます。例えば、コピーを無効にします。

```ts
import { UnitAction } from '@univerjs/protocol'

await base.getPermission().setPoint(UnitAction.Copy, false)
```

エクスポートとコメントの権限には、それぞれ `UnitAction.Export` と `UnitAction.Comment` を使います。

## 業務上の権限との連携

ローカルの権限はエディターの動作を制御します。共同編集アプリケーションでは、コンテンツの読み取り、共同編集への参加、変更の送信をサーバー側でも認可する必要があります。[サーバー統合](https://docs.univer.ai/ja-JP/server.md)を参照してください。

編集者、閲覧者、権限のないユーザーでテストし、ページ操作と直接リクエストの両方を確認してください。
