# XStream管理者の設定

## このタスクについて

XStream管理者を設定するには、ユーザーの作成、権限の付与、およびテーブルスペースの作成を行う権限を持つ管理ユーザーとしてOracleデータベースに接続し、次のステップに従います。

## 手順

1. 次のステートメントを実行してXStream管理者のテーブルスペースを作成します。既存のテーブルスペースを使用する場合はこのステップをスキップします。
   ```
   CREATE TABLESPACE xstream_tbs DATAFILE '$ORACLE_HOME/dbs/xstream_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
   ```
2. 次のステートメントを実行して、XStream管理者となる新しいユーザーを作成します。既存のユーザーを指定する場合は、このステップをスキップします。
   ```
   CREATE USER username IDENTIFIED BY password
   DEFAULT TABLESPACE xstream_tbs
   QUOTA UNLIMITED ON xstream_tbs;
   ```

   情報メモ注:
   * CDBでXStream管理者を作成する場合、XStream管理者は一般ユーザーにする必要があります。一般ユーザーの名前はc##またはC##で始まり、ステートメントにはCONTAINER=ALL句を含める必要があります。

   * Oracleのデフォルトのテーブルスペースを使用してXStream管理者を作成する場合、ステートメントのDEFAULT TABLESPACEおよびQUOTA UNLIMITED ON句は削除する必要があります。
3. 次のステートメントおよびプロシージャーを実行してXStream管理者に権限を付与します。
   ```
   GRANT DBA TO username;
   GRANT CONNECT, CREATE TABLE TO username;
   GRANT RESOURCE TO username;
   GRANT CREATE TABLESPACE TO username;
   GRANT UNLIMITED TABLESPACE TO username;
   GRANT SELECT_CATALOG_ROLE TO username;
   GRANT EXECUTE_CATALOG_ROLE TO username;
   GRANT CREATE SEQUENCE TO username;
   GRANT CREATE SESSION TO username;
   GRANT CREATE ANY VIEW TO username;
   GRANT CREATE ANY TABLE TO username;
   GRANT SELECT ANY TABLE TO username;
   GRANT COMMENT ANY TABLE TO username;
   GRANT LOCK ANY TABLE TO username;
   GRANT SELECT ANY DICTIONARY TO username;
   GRANT EXECUTE ON SYS.DBMS_CDC_PUBLISH to username;
   GRANT CREATE ANY TRIGGER TO username;
   GRANT ALTER ANY TRIGGER TO username;
   GRANT DROP ANY TRIGGER TO username;
   ```
   ```
   BEGIN
      DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE(
         grantee => 'username',
         privilege_type => 'CAPTURE',
         grant_select_privileges => TRUE);
   END;
   /
   ```
   ```
   BEGIN
      DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE(
         grantee => 'username',
         privilege_type => 'APPLY',
         grant_select_privileges => TRUE);
   END;
   /
   ```

## タスクの結果

一般ユーザーに権限を付与する場合は、上記のGRANTステートメントおよびプロシージャーにCONTAINER=ALL句を含める必要があります。