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

# データベースを手動で作成する

> 空のデータベースを作成し、Description スクリプトと DBInitFill スクリプトを実行し、GUID を割り当て、最初の管理者を追加して、FlexiCapture データベースを手動で構築します。

管理および監視コンソールから作成する代わりに、FlexiCapture データベースを手動で構築することもできます。まず空のデータベースを作成し、その後で初期化して構成します。

<div id="create-a-blank-database">
  ## 空のデータベースを作成する
</div>

Microsoft SQL Server または Oracle の場合は、標準のデータベース管理ツールを使用して空のデータベースを作成し、[データベースの初期化と構成](#initialize-and-configure-the-database) に進みます。

PostgreSQL の場合は、psql クライアントからデータベースを作成します。

1. `CREATEDB`+`CREATEROLE` または `SUPERUSER` 権限を持つアカウントを使用して、PostgreSQL サーバーに接続します。

   ```bash theme={null}
   psql -h srvname -U postgres
   ```

2. 事前定義されたパスワードと、サーバーへのログイン権限を持つユーザーアカウントを作成します (ここから後の手順では、`rolename` はユーザー名です) 。

   ```sql theme={null}
   CREATE ROLE rolename WITH ENCRYPTED PASSWORD 'rolepwd' LOGIN;
   ```

3. 新しいデータベースを作成します (ここから後の手順では、`dbname` はデータベース名です) 。

   ```sql theme={null}
   CREATE DATABASE dbname;
   ```

4. データベースへの接続権限と、一時テーブルを作成する権限をユーザーに付与します。

   ```sql theme={null}
   GRANT CONNECT, TEMPORARY ON DATABASE dbname TO rolename;
   ```

5. public スキーマよりも fc スキーマが優先されるようにします。

   ```sql theme={null}
   ALTER DATABASE dbname SET search_path = "$user", fc, public;
   ```

6. 新しく作成したデータベースに接続します。

   ```sql theme={null}
   \c dbname
   ```

7. fc スキーマを作成し、作成したユーザーをその所有者として指定します。

   ```sql theme={null}
   CREATE SCHEMA fc AUTHORIZATION rolename;
   ```

8. データベースに ltree 拡張機能を作成します。

   ```sql theme={null}
   CREATE EXTENSION IF NOT EXISTS ltree;
   ```

9. PostgreSQL サーバーから切断します。

<Warning>
  以降のすべての操作は、このユーザーアカウントで PostgreSQL データベースに対して実行してください。
</Warning>

<div id="initialize-and-configure-the-database">
  ## データベースを初期化して構成する
</div>

空のデータベースを作成したら、次の手順を実行します。データベースエンジンによって手順が異なる場合は、ご使用のデータベースに対応するものを実行してください。

1. ご使用のデータベース用のスキーマ記述スクリプトを実行します。

   * Microsoft SQL Server: `Description.sql`
   * Oracle: `Description_Oracle.sql`
   * PostgreSQL: `Description_PostgreSQL.sql`

   既定では、これらのスクリプトは、Application Server がインストールされているコンピューター上の `C:\inetpub\wwwroot\FlexiCapture12\Server` フォルダーにあります。

2. ご使用のデータベース用のデータ初期化スクリプトを実行します。

   * Microsoft SQL Server: `DBInitFill.sql`
   * Oracle: `DBInitFill_Oracle.sql`
   * PostgreSQL: `DBInitFill_PostgreSQL.sql`

3. データベースに一意の識別子を指定します。

   Microsoft SQL Server:

   ```sql theme={null}
   INSERT INTO dbo.Settings( Name, Value, ProjectId, BatchTypeId, UserId, Workstation, RoleId, ProcessingStage) VALUES ('DatabaseGUID', NEWID(), NULL, NULL, NULL, NULL, NULL, NULL )
   ```

   PostgreSQL:

   ```sql theme={null}
   INSERT INTO Settings (Name, Value)
   VALUES ('DatabaseGUID', upper(md5(clock_timestamp()::text)::uuid::text));
   ```

4. 最初のユーザーを追加します。

   Microsoft SQL Server:

   ```sql theme={null}
   INSERT INTO principal (Name, FullName, EMail, PasswordHash, PasswordReset) values (N'Login', N'FullName', N'email', '', 0)
   ```

   PostgreSQL:

   ```sql theme={null}
   INSERT INTO Principal (Name, FullName, Email, PasswordHash, PasswordReset) values ('Login', 'FullName', 'email', '', false);
   ```

   ここで:

   * **Login** — ユーザーが使用するログイン名です。データベースへの接続時に管理および監視コンソールを開く Windows ユーザーのログイン名を指定します。
   * **FullName** — プロファイルに表示されるユーザーの氏名です。
   * **Email** — ユーザーのメール アドレスです。

5. 新しいユーザーにシステム管理者ロールを指定します。

   Microsoft SQL Server:

   ```sql theme={null}
   INSERT INTO principalpermission (PrincipalId, RoleType, IsAllowed) values (1, 10, 1);
   ```

   PostgreSQL:

   ```sql theme={null}
   INSERT INTO principalpermission (PrincipalId, RoleType, IsAllowed) values (1, 10, true);
   ```

6. 管理および監視コンソールを使用して、新しく作成したデータベースに接続します。

データベースの作成と構成に必要なアカウント権限の詳細については、[データベースを作成する](/ja/flexi-capture/admin-guide/create-database)を参照してください。
