ユーザーの作成
今回は新しく作成したPDB PDB_TEST1内にユーザーを作成します。
- 対象のPDBに接続します。
ALTER SESSION SET CONTAINER = PDB_TEST1;

- ユーザーを作成します。
- ユーザー名:TEST_USER
- パスワード:testpass
CREATE USER TEST_USER IDENTIFIED BY testpass;

ユーザーの存在確認
以下のSQLでTEST_USERが存在するか確認します。
SELECT USERNAME FROM DBA_USERS WHERE USERNAME = 'TEST_USER';
TEST_USERが表示されていればOKです。

また、こちらのSQLでもユーザーが存在するか確認できます。
SELECT USERNAME FROM ALL_USERS WHERE USERNAME = 'TEST_USER';

ユーザーと権限
システム権限
システム権限は、システムに対する権限です。テーブルの作成やデータベースの変更などがあたります。
TEST_USERにシステム権限を付与します。
GRANT CREATE TABLE, CREATE ANY TABLE, SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE, CREATE SESSION TO TEST_USER;

権限 | 説明 |
CREATE TABLE | ユーザーが自分のスキーマ内にテーブルを作成できる権限 |
CREATE ANY TABLE | ユーザーが他のスキーマにもテーブルを作成できる権限 |
SELECT ANY TABLE | ユーザーがすべてのスキーマのテーブルを参照できる権限 |
INSERT ANY TABLE | ユーザーがすべてのスキーマのテーブルにデータを挿入できる権限 |
UPDATE ANY TABLE | ユーザーがすべてのスキーマのテーブルのデータを更新できる権限 |
DELETE ANY TABLE | ユーザーがすべてのスキーマのテーブルのデータを削除できる権限 |
CREATE SESSION | ユーザーがデータベースに接続できる権限 |
システム権限を確認
TEST_USERのシステム権限を確認します。
SELECT GRANTEE, PRIVILEGE, ADMIN_OPTION FROM DBA_SYS_PRIVS WHERE GRANTEE = 'TEST_USER';

カラム | 説明 |
GRANTEE | 権限を付与されたユーザー |
PRIVILEGE | 付与された権限 |
ADM | 他のユーザーに同じ権限を付与できるかどうか |
DBに接続する権限などを付与したのでTEST_USERを使って接続してみましょう。
手順 –> sqlplusを使った接続
オブジェクト(テーブル)権限を確認
SELECT TABLE_NAME, PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'TEST_USER';
付与されたロールを確認
SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'TEST_USER';
コメント