Oracle Database 18c にテーブルスペース（表領域）及びスキーマ（ユーザー）を作成

前回、「[Oracle Database 18c インストール（Windows編）](https://qiita.com/yasushi-jp/items/31e82a24b1d38fab1c04)」で Windows7 に Oracle Database 18c をインストールしました。
今回は、インストールした Oracle Database 18c の プラガブルデータベース にテーブルスペース（表領域）やスキーマ（ユーザー）を作成したいと思います。
今回使用するプラガブルデータベース（PDB）のデータベース名は「**ORCLPDB**」です。


### 1. Sql*plusでプラガブルデータベース「ORCLPDB」に接続する。

`sqlplus system/Passw0rd@localhost:1521/ORCLPDB` でPDB（ORCLPDB）に接続
`show con_name` で接続先がORCLPDBであることを確認

```sql
C:\app\oracle>sqlplus system/Passw0rd@localhost:1521/ORCLPDB

SQL*Plus: Release 18.0.0.0.0 - Production on 月 9月 16 16:43:11 2019
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

最終正常ログイン時間: 月 9月  16 2019 15:59:23 +09:00


Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0
に接続されました。
SQL> show con_name

CON_NAME
------------------------------
ORCLPDB
SQL>
```

### 2. テーブルスペース（表領域）の作成
表領域として、以下の3つを作成する。

データ用表領域|C:\Data\oracle_dbf\TS_TBL_TESTUSER_01.DBF|TS_TBL_TESTUSER_01|8MB|4MB|8G

種類|表領域名|物理ファイルパス|初期サイズ|増分サイズ|最大サイズ|ブロックサイズ
----|--------|--------------|---------|---------|--------|-----------------
データ用表領域|TS_TBL_TESTUSER_01|C:\Data\oracle_dbf\TS_TBL_TESTUSER_01.DBF|8MB|2MB|2GB|8KB
インデックス用表領域|TS_IDX_TESTUSER_01|C:\Data\oracle_dbf\TS_IDX_TESTUSER_01.DBF|8MB|2MB|1GB|8KB
テンポラリ用表領域|TS_TMP_TESTUSER_01|C:\Data\oracle_dbf\TS_TMP_TESTUSER_01.DBF|8MB|2MB|1GB|8KB



```sql:データ用表領域作成SQL
CREATE BIGFILE TABLESPACE TS_TBL_TESTUSER_01
    DATAFILE 'C:\Data\ora_dbf\TS_TBL_TESTUSER_01.DBF' SIZE 8M
    AUTOEXTEND ON NEXT 2M MAXSIZE 2G
    BLOCKSIZE 8K
    ONLINE DEFAULT NOCOMPRESS
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M;
```

```sql:インデックス用表領域作成SQL
CREATE BIGFILE TABLESPACE TS_IDX_TESTUSER_01
    DATAFILE 'C:\Data\ora_dbf\TS_IDX_TESTUSER_01.DBF' SIZE 8M
    AUTOEXTEND ON NEXT 2M MAXSIZE 1G
    BLOCKSIZE 8K
    ONLINE DEFAULT NOCOMPRESS
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M;
```

```sql:テンポラリ用表領域作成SQL
CREATE BIGFILE TEMPORARY TABLESPACE TS_TMP_TESTUSER_01
    TEMPFILE 'C:\Data\ora_dbf\TS_TMP_TESTUSER_01.DBF' SIZE 8M
    AUTOEXTEND ON NEXT 2M MAXSIZE 1G
    BLOCKSIZE 8K
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M;
```

上記3つのSQLをSql*plusで実行する。

```sql:実行結果
SQL> CREATE BIGFILE TABLESPACE TS_TBL_TESTUSER_01
  2  DATAFILE 'C:\Data\ora_dbf\TS_TBL_TESTUSER_01.DBF' SIZE 8M
  3  AUTOEXTEND ON NEXT 2M MAXSIZE 2G
  4  BLOCKSIZE 8K
  5  ONLINE DEFAULT NOCOMPRESS
  6  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M;

表領域が作成されました。

SQL> CREATE BIGFILE TABLESPACE TS_IDX_TESTUSER_01
  2  DATAFILE 'C:\Data\ora_dbf\TS_IDX_TESTUSER_01.DBF' SIZE 8M
  3  AUTOEXTEND ON NEXT 2M MAXSIZE 1G
  4  BLOCKSIZE 8K
  5  ONLINE DEFAULT NOCOMPRESS
  6  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M;

表領域が作成されました。

SQL> CREATE BIGFILE TEMPORARY TABLESPACE TS_TMP_TESTUSER_01
  2  TEMPFILE 'C:\Data\ora_dbf\TS_TMP_TESTUSER_01.DBF' SIZE 8M
  3  AUTOEXTEND ON NEXT 2M MAXSIZE 1G
  4  BLOCKSIZE 8K
  5  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M;

表領域が作成されました。

SQL>
```

### 3. 作成されたファイル、及びテーブルスペースの確認

```sql:テーブルスペース（データファイル）の確認
SQL> column tablespace_name format a19
SQL> column file_name format a48
SQL> select tablespace_name,file_name,bytes from dba_data_files;

TABLESPACE_NAME     FILE_NAME                                             BYTES
------------------- ------------------------------------------------ ----------
SYSTEM              C:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\SYSTEM01.DBF   283115520
SYSAUX              C:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\SYSAUX01.DBF   408944640
UNDOTBS1            C:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\UNDOTBS01.DBF  104857600
USERS               C:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\USERS01.DBF      5242880
TS_TBL_TESTUSER_01  C:\DATA\ORA_DBF\TS_TBL_TESTUSER_01.DBF              8388608
TS_IDX_TESTUSER_01  C:\DATA\ORA_DBF\TS_IDX_TESTUSER_01.DBF              8388608

6行が選択されました。

SQL>
```

```sql:テーブルスペース（テンポラリファイル）の確認
SQL> select tablespace_name,file_name,bytes from dba_temp_files;

TABLESPACE_NAME     FILE_NAME                                             BYTES
------------------- ------------------------------------------------ ----------
TEMP                C:\APP\ORACLE\ORADATA\ORCL\ORCLPDB\TEMP01.DBF      65011712
TS_TMP_TESTUSER_01  C:\DATA\ORA_DBF\TS_TMP_TESTUSER_01.DBF              8388608

SQL>
```

以下、ファイルが作成されていることを確認
![oracle44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292434/3a8266c5-7f8a-33c6-962b-a3fdc9b2d627.png)


### 4. ユーザー（スキーマ）の作成

TESTUSERを作成。TESTUSERはデフォルトで、データ表領域としてTS_TBL_TESTUSER_01を、テンポラリ表領域としてTS_TMP_TESTUSER_01を使用する。

```sql:ユーザ（スキーマの作成）の実行
SQL> CREATE USER TESTUSER IDENTIFIED BY TESTUSER
  2  DEFAULT TABLESPACE "TS_TBL_TESTUSER_01"
  3  TEMPORARY TABLESPACE "TS_TMP_TESTUSER_01";

ユーザーが作成されました。

SQL>
``` 

### 6. 権限付与

権限名|内容
------|----
RESOURCE|ユーザーに関連付けられたスキーマで特定タイプのスキーマ・オブジェクトの作成、変更および削除を可能とする権限
CONNECT|ユーザーのデータベースへの接続権限
DEBUG CONNECT SESSION|PL/SQL等のデバッグで必要な権限
DEBUG ANY PROCEDURE|PL/SQL等のデバッグで必要な権限


```sql:権限付与の実行
SQL> GRANT RESOURCE TO TESTUSER;

権限付与が成功しました。

SQL> GRANT CONNECT TO TESTUSER;

権限付与が成功しました。

SQL> GRANT DEBUG CONNECT SESSION TO TESTUSER;

権限付与が成功しました。

SQL> GRANT DEBUG ANY PROCEDURE TO TESTUSER;

権限付与が成功しました。

SQL>
```

### 7. sqldeveloperから接続

sqldeveloperをダブルクリックして起動
![oracle39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292434/6d95af25-9281-a4eb-ff17-ff3387ac493a.png)

新規接続を選択
![oracle45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292434/70d552dc-58dd-6d0c-34fe-7726b1158a22.png)

新規に作成したユーザーで接続情報を入力し接続
![oracle46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292434/e5e7dcad-a360-ef0f-2444-412a6605e454.png)

接続完了
![oracle47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292434/40692977-0703-75b2-0d4e-b13da54493e9.png)


以上