実運用のデータベースでは、強力な権限をもつSYSTEMユーザやSYSユーザで操作は好ましくなりません。
どのようなユーザが、どこまでデータを利用できるのか、を明確にすることが大事です。
■管理者ユーザと一般ユーザ
Oracleの管理者ユーザはDBAと呼ばれ、SYSユーザ・SYSTEMユーザがそれにあたります。
一般ユーザは、管理者によって作成されるユーザのことです。
権限を与えない限りは、データベースに対して何の操作もできません。
ユーザを作成するのは、下記のコマンドです(SYSTEMユーザまたはSYSユーザでSQL*Plusに接続します)
SQL> CREATE USER ユーザ名 IDENTIFIED BY パスワード;
■権限
Oracleには、システム権限とオブジェクト権限という2種類があります。
システム権限
データベースの操作に対する許可を与えます。
SELECTやDROPといった操作ができるようになります。
システム権限を付与するには、下記のコマンドを使います。
SQL> GRANT システム権限名 TO ユーザ名
システム権限名としては、ざっと以下のものがあります(本当はもっと複雑で多いけども省略)
・CREATE SESSION(データベースに接続できる権限)
・CREATE TABLE(表を作成できる権限)
・CREATE ANY TABLE(別のスキーマも含めて表を作成できる権限)
・SYSDBA(データベースの起動・停止、オブジェクトの作成など何でもできる権限)
・ALL PRIVILEGES(何でもできる権限)
オブジェクト権限
特定のユーザのオブジェクトを利用する許可を与えます。
つまり、別のユーザのスキーマを利用することができます。
オブジェクト権限を付与するには、下記のコマンドを使います。
SQL> GRANT オブジェクト権限名 ON オブジェクト名 TO ユーザー名
オブジェクト権限名としは、ざっと以下のものがあります
・SELECT(検索)
・INSERT(挿入)
・ALTER(変更)
・INDEX(索引作成)
権限の確認
与えられている権限は下記のようにして確認できます。
権限を見たいユーザでSQL*Plusにつなぐ。
SQL> SELECT * FROM USER_SYS_PRIVS;
権限の削除
設定されている権限を削除します。
SQL> REVOKE 権限 [ON オブジェクト名] FROM 対象ユーザ名;
オブジェクト権限を削除するときに、[ON オブジェクト名] を指定します。
権限に、ALL PRIVIREGES を指定すると、全ての権限を削除することができます。
参考) 基礎からのOracle
0 件のコメント:
コメントを投稿