Oracle新規ユーザー、ロール、権限、表領域のsql文

5158 ワード

oracleデータベースの権限システムは、システム権限とオブジェクト権限に分けられます.システム権限(database system privilege)は、ユーザに特定のコマンドセットを実行させることができる.たとえば、create table権限ではユーザーがテーブルを作成でき、grant any privilege権限ではユーザーがシステム権限を付与できます.オブジェクト権限(database object privilege)は、ユーザーが各オブジェクトに対して何らかの操作を行うことができるようにします.たとえばdelete権限では、テーブルまたはビューの行を削除できます.select権限では、selectを使用してテーブル、ビュー、シーケンス、またはスナップショットから情報をクエリーできます.
各oracleユーザーには名前とパスワードがあり、作成されたテーブル、ビュー、その他のリソースがあります.oracleロール(role)は、権限(privilege)のセット(または、各ユーザーがステータスと条件に基づいて必要とするアクセスタイプ)です.ユーザーは、ロールに指定した権限を付与または付与し、対応するユーザーにロールを付与できます.1人のユーザーが他のユーザーに直接権限を与えることもできます.
一、ユーザーの作成
Oracle作成ユーザーの構文:
CREATE USERコマンドを使用できる、Oracle作成ユーザー(パスワード検証ユーザー)
CREATE USER username IDENTIFIED BY password
OR IDENTIFIED EXETERNALLY
OR IDENTIFIED GLOBALLY AS ‘CN=user'
[DEFAULT TABLESPACE tablespace]
[TEMPORARY TABLESPACE temptablespace]
[QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
[,QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace
[PROFILES profile_name]
[PASSWORD EXPIRE]
[ACCOUNT LOCK or ACCOUNT UNLOCK]
ここで、
CREATE USER username:ユーザー名、一般的にアルファベット型と「#」および「」を選択します.
IDENTIFIED BY password:ユーザーパスワード、一般的にアルファベット数字型と「#」と「」を選択します.
IDENTIFIED EXETERNALLY:ユーザー名がオペレーティングシステムで検証されていることを示します.このユーザー名はオペレーティングシステムで定義されているユーザー名と同じでなければなりません.
IDENTIFIED GLOBALLY AS'CN=user':ユーザー名はOracleセキュリティドメインセンターサーバによって検証され、CN名はユーザーの外部名を表します.
[DEFAULT TABLESPACE tablespace]:デフォルトの表領域.
[TEMPORARY TABLESPACE tablespace]:デフォルトの一時表領域.
[QUOTA[integer K[M][UNLIMITED]]ON tablespace:ユーザーが使用できる表領域のバイト数.
[PRODファイル名]:リソースファイルの名前.
[PASSWORD EXPIRE]:パスワードをすぐに期限切れに設定し、ユーザーが再ログインする前にパスワードを変更する必要があります.
[ACCOUNT LOCK or ACCOUNT UNLOCK]:ユーザーがロックされているかどうかは、デフォルトではロックされていません.
oracleの内部にはsystemとsysという2つの構築されたユーザーがいます.ユーザは、システムが他のユーザを作成する権限を有するため、システムユーザに直接ログインして他のユーザを作成することができる.Oracleをインストールするとき、ユーザーまたはシステム管理者はまず自分のためにユーザーを作成できます.例:
 
  
create user user01 identified by u01;

このコマンドは、他の権限を設定するためにも使用できます.詳細は、自己学習資料を参照してください.パスワードを変更するには、alter userコマンドを使用します.
 
  
alter user user01 identified by usr01;

user 01のパスワードが「u 01」から「usr 01」に変更されました.
alter userコマンドに加えて、passwordコマンドを使用することもできます.passwordコマンドを使用すると、ユーザーが入力した新しいパスワードは画面に表示されません.dba特権のあるユーザはpasswordコマンドによって他のユーザのパスワードを変更することができる.他のユーザーは自分のパスワードしか変更できません.
ユーザーがpasswordコマンドを入力すると、次のように古いパスワードと新しいパスワードを入力するようにユーザーに要求されます.
  password
  changing password for user01
  old password:
  new password:
  retype new password:
パスワードの変更に成功すると、ユーザーは次のようなフィードバックを得ます.
  password changed
二、ユーザー削除ユーザーはdrop userコマンドを使用して、以下のようにすることができる.
 
  
  drop user user01;

ユーザーがオブジェクトを持っている場合は、直接削除できません.そうしないと、エラー値が返されます.ユーザーのすべてのオブジェクトを削除してからユーザーを削除するキーワードcascadeを指定します.次の例では、ユーザーとそのオブジェクトを削除します.
 
  
  drop user user01 cascade;

3、3種類の標準キャラクター
qracleは、以前のバージョンと互換性のある3つの標準的なロール(role):connect、resource、dbaを提供しています.
  1. 接続ロール
テンポラリ・ユーザー、特にテーブルを作成する必要のないユーザーは、通常connectroleのみを付与します.Connectはoracleを使用する簡単な権限です.この権限は、select、insert、update、deleteなど、他のユーザーのテーブルにアクセスする場合にのみ意味があります.Connect roleを持つユーザーは、テーブル、ビュー、シーケンス、クラスタ、シノニム、セッション、および他のデータベースとのチェーンを作成することもできます.
  2. resource role(リソースロール)
より信頼性が高く、正式なデータベース・ユーザーはresource roleを付与できます.resourceは、ユーザーに独自のテーブル、シーケンス、プロシージャ、トリガ、インデックス、クラスタを作成するための追加の権限を提供します.
  3. dba role(データベース管理者ロール)
dba roleには、無制限のスペース制限や他のユーザーにさまざまな権限を付与する能力など、すべてのシステム権限があります.Systemはdbaユーザが所有する.dbaでよく使用される一般的な権限について説明します.
(1)grant(承認)コマンド
次に、作成したユーザーuser 01に権限を与えます.コマンドは次のとおりです.
  grant connect, resource to user01;
(2)revoke(取り消し)権限
付与された権限は取り消すことができます.たとえば、(1)の権限を取り消します.コマンドは次のとおりです.
 
  
  revoke connect, resource from user01;

dbaロールを持つユーザーは、他のユーザー、さらには他のdbaのconnect、resource、およびdbaの他の権限を取り消すことができます.もちろん、これは危険です.そのため、dba権限は、本当に必要でない限り、重要ではない一般ユーザーに勝手に付与するべきではありません.1人のユーザーのすべての権限を取り消すことは、oracleからこのユーザーを削除しても、ユーザーが作成したテーブルを破壊することはありません.ただし、これらのテーブルへのアクセスは簡単に禁止されます.これらのテーブルにアクセスする他のユーザーは、以前のようにこれらのテーブルにアクセスできます.
四、ロールの作成
前述した3つのシステムロールである-connect、resource、dbaのほか、oracleで独自のroleを作成することもできます.ユーザが作成したroleは、テーブルまたはシステム権限、または両方の組合せで構成できます.roleを作成するには、create roleシステム権限が必要です.次にcreate roleコマンドの例を示します.
 
  
  create role student;

このコマンドはstudentというroleを作成します.
roleを作成すると、ユーザーは彼に権限を与えることができます.roleに許可されたgrantコマンドの構文は、ユーザーに対する構文と同じです.roleに権限を付与する場合、grantコマンドのto句でroleの名前を使用します.以下に示します.
 
  
  grant select on class to student;

studentロールを持つすべてのユーザーがclassテーブルに対するselect権限を持つようになりました.
五、ロールの削除
ロールを削除するにはdrop roleコマンドを使用します.次のようにします.
 
  
  drop role student;

指定したroleは、それに関連する権限とともにデータベースからすべて削除されます.
六、削除表の注意事項
1つのテーブルのすべてのデータを削除する場合は、
Sqlコード
 
  
truncate table

drop table,delete*fromテーブル名を用いる場合,tablespaceテーブルの占有空間は解放されず,dropを何度も繰り返し,delete操作すると,このtablespace上の百兆の空間が消費されるからである.
著者「技術総括」