ラベル CONNECT の投稿を表示しています。 すべての投稿を表示
ラベル CONNECT の投稿を表示しています。 すべての投稿を表示

2013/08/14

06-04.USERの作成と権限【権限とロール04--ORACLE DBインストール時のデポルトROLE】

オラクルデーターベースを作成すると基本的に作成されるROLEがある。
DBA_ROLESで既に定義されているROLEを確認できる。


SQL> SELECT * FROM DBA_ROLES;

ROLE                           PASSWORD AUTHENTICAT
------------------------------ -------- -----------
CONNECT                        NO       NONE
RESOURCE                       NO       NONE
DBA                            NO       NONE
SELECT_CATALOG_ROLE            NO       NONE
EXECUTE_CATALOG_ROLE           NO       NONE
DELETE_CATALOG_ROLE            NO       NONE
EXP_FULL_DATABASE              NO       NONE
IMP_FULL_DATABASE              NO       NONE
LOGSTDBY_ADMINISTRATOR         NO       NONE
DBFS_ROLE                      NO       NONE
AQ_ADMINISTRATOR_ROLE          NO       NONE

……
……
……


56行が選択されました。

SQL>


多数のROLEがあるが、良く使う3つについて調べてみる。

■CONNECT ROLE
 -ORCLEへ接続できるセッション及びテーブルを作成、確認できるノーマルな権限で構成されている
 -CONNECT ROLEが無いとユーザーを作成してもORACLEへ接続できない。
 -下記コマンドでCONNECT ROLEの権限が確認できる。

SQL> SELECT grantee, privilege
  2  FROM DBA_SYS_PRIVS
  3  WHERE grantee = 'CONNECT';

GRANTEE                        PRIVILEGE
------------------------------ ----------------------------------------
CONNECT                        CREATE SESSION

SQL>



■RESOURCE ROLE
 -Store Procedure、Trigger等PL/SQLを使用できる権限で構成されている。
 -PL/SQLを使用するにはRESOURC ROLEを付与しなければならない。
 -ユーザーを作成すると基本的にCONNECT、RESOURCEロールを付与する。

■DBA ROLE
 -すべてのシステム権限が付与されているロール。
 -DBA ROLEはデーターベース―管理者のみに付与すべき。

2013/08/13

06-01.USERの作成と権限【USER 作成】

■USER作成

CREATE USER user_name
IDENTIFIELD [BY password | EXTERNALLY]
 [ DEFAULT TABLESPACE tablespace ]
 [ TEMPORARY TABLESPACE tablespace ]
 [ QUOTA { integer [K|M] | UNLIMITIED } ON tablespace ]
 [ PASSWORD EXPIRE ]
 [ ACCOUNT { LOCK | UNLOCK } ]
 [ PROFILE { profile | DEFAULT } ]

・user_name : USERの名前
・BY password : USERログイン時のパスワード
・EXTERNALLY : USERのOSによる認証指定
・DEFAULT TABLESPACE : USERスキーマの為の基本テーブルスペースを指定
・TEMPORARY TABLESPACE : USERの一時的テーブルスペースを指定
・QUOTA : USERが使用するテーブルスペースの領域を指定
・PASSWORD EXPIRE : USERがSQLPLUSでDBにログインする時パスワードを再設定
 (USERがDBにより認証される場合のみ適切なオプションだ。)
・ACCOUNT LOCK/UNLOCK : USERアカウントをロック、アンロックする時使用
 (UNLOCKが基本)
・PROFILE : 資源使用を制御し、USERへ使用される暗号制御処理方式を指定

ここでは簡単なユーザー作成について記載、
詳細なユーザー管理とPROFILE管理はアドミンで…

※TEMPORARY TABLESPACEを指定しないとシステムのテーブルスペースが基本的に指定されるが、システムのテーブルスペースに斷片が発生する可能性があるのでUSER作成時には、TEMPORARY TABLESPACEを指定するのが望ましい

また、DEFAULT TABLESPACEもUSER作成時に指定しないと基本的にシステムテーブルスペースが指定される。だが、USER作成時にDEFAULT TABLESPACEを指定してUSERが持つデーターとオブジェクトの保存スペースを別途管理する必要がある。

システムテーブルスペースは本来の目的(すべてのデーター情報、保存プロシーザー、パッケージ、DBトリーガー等を保存)の為に使う物であり、一般USERのデーター保存に使用してはいけない。

※テーブルスペースとは
 ・オラクルサーバーがデーターを保存する論理的な構造
 ・テーブルスペースは1つまたは多数のデーターファイルで作られる論理的データー保存構造

■USER作成実記

---SQL PLUS実行後、SCOTT/TIGERで接続

SQL> CREATE USER TEST IDENTIFIED BY TEST;
CREATE USER TEST IDENTIFIED BY TEST
                               *
行1でエラーが発生しました。:
ORA-01031: 権限が不足しています。


---SCOTT USERはユーザー作成権限がないので作成不可
---DBA Roleのあるユーザーで接続

SQL> CONN sys/manager AS SYSDBA
接続されました。

---USERを再作成
SQL> CREATE USER TEST IDENTIFIED BY TEST;

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

SQL>


新しく作成したユーザーで接続してみよう

SQL> CONN TEST/TEST
ERROR:
ORA-01045: user TEST lacks CREATE SESSION privilege; logon denied


警告: Oracleにはもう接続されていません。

---新しく作成したTESTユーザーは権限がないので接続できない
---すべてのユーザーは権限が付与され付与された権限のことしかできない
---TESTユーザーも使用するための権限を付与してあげなければならない

SQL> CONN sys/manager AS SYSDBA
接続されました。
SQL>
SQL> GRANT connect, resource to TEST;

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

SQL> CONN TEST/TEST
接続されました。
SQL>


QLOOKアクセス解析