# Configurez un administrateur XStream

## Pourquoi et quand exécuter cette tâche

Afin de configurer un administrateur XStream, connectez-vous à la base de données Oracle en tant qu'administrateur ayant les droits pour créer des utilisateurs et des utilisatrices, accorder des privilèges et créer des tablespaces.

## Procédure

1. Créez un tablespace pour l'administrateur XStream en exécutant la requête suivante. Passez cette étape si vous souhaitez utiliser un tablespace existant.
   ```
   CREATE TABLESPACE xstream_tbs DATAFILE '$ORACLE_HOME/dbs/xstream_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
   ```
2. Créez un·e nouvel·le utilisateur·trice pour l'administrateur XStream en exécutant les requêtes suivantes. Passez cette étape si vous souhaitez identifier un utilisateur ou une utilisatrice existant.
   ```
   CREATE USER username IDENTIFIED BY password
   DEFAULT TABLESPACE xstream_tbs
   QUOTA UNLIMITED ON xstream_tbs;
   ```

   Note InformationsRemarque :
   * Si vous créez un administrateur XStream dans une CDB, l'administrateur XStream doit être un utilisateur ou une utilisatrice commun. Le nom d'un utilisateur ou d'une utilisatrice commun doit commencer par c## ou C## et vous devez inclure la clause CONTAINER=ALL dans la requête.

   * Si vous créez un administrateur XStream à l'aide du tablespace par défaut d'Oracle, vous devez supprimer les clauses DEFAULT TABLESPACE et QUOTA UNLIMITED ON de la requête.
3. Accordez des privilèges à l'administrateur XStream en exécutant les requêtes et procédures suivantes :
   ```
   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;
   /
   ```

## Résultats

Notez que si vous accordez des privilèges à un utilisateur ou une utilisatrice commun, vous devez inclure la clause CONTAINER=ALL dans les requêtes et procédures GRANT précédentes.