構文構文 構文構文 図 図 図
図4-44 GRANTコマンドコマンドコマンドコマンド
用途 用途 用途 用途
ユーザーにADMIN、DBA、DDLまたはRESOURCEロールの権限を付与します。または、
ユーザーにデータベース・オブジェクトに対する権限を付与します。できるだけ、DDLの かわりにDBAロールを使用することをお薦めします。
前提条件 前提条件 前提条件 前提条件
ロール権限を付与するには、データベースにSYSTEMとして、またはDBA/DDLおよび
ADMIN権限あるいはRESOURCE権限を持つユーザーとしてログインする必要があります。
表表
表表4-38 GRANTコマンドで使用される引数コマンドで使用される引数コマンドで使用される引数コマンドで使用される引数
前もって定義されたロール 前もって定義されたロール 前もって定義されたロール 前もって定義されたロール
Oracle Liteは、便宜上いくつかの特権をまとめて、前もって定義されたロールにします。多
くの場合、ユーザーに、別のスキーマの特定の特権を付与するよりも、前もって定義された ロール権限を付与する方が簡単です。Oracle Liteは、ロールの作成や削除をサポートしませ ん。次は、Oracle Liteの前もって定義されたロールのリストです。
引数引数
引数引数 説明説明説明説明
role ADMIN、DBA/DDLまたはRESOURCEロール。
user_list ユーザー、またはカンマで区切られたユーザーのリスト。
ON ロールを付与するデータベース・オブジェクトを示します。
privilege_list 次の権限をカンマで区切ったリストか、ALLと呼ばれる組合せ。
INSERT、DELETE、UPDATE (col_list)、SELECTおよび REFERENCES。
TO ロールを付与するユーザーまたはユーザー・リストを示します。
object_name オプションとして接頭辞にスキーマ名が付いた表名。
ALTER USER
SQLコマンド 4-71 表
表 表
表4-39 Oracle Liteの前もって定義されたロールの前もって定義されたロールの前もって定義されたロールの前もって定義されたロール
使用上の注意 使用上の注意 使用上の注意 使用上の注意
privilege_listがALLの場合、ユーザーは、表またはビューからINSERT、DELETE、
UPDATEまたはSELECTを実行できます。privilege_listが、INSERT、DELETE、UPDATE
またはSELECTのいずれかの場合、ユーザーは表に対してその特権を持ちます。
ユーザーに表のUPDATE権限を付与し、その後、列を追加して表を変更した場合、その ユーザーは、新しい列を更新できません。新しい列を作成した後に権限付与の文を発行した 場合、ユーザーは新しい列を更新できます。たとえば、次のとおりです。
CREATE TABLE t1 (c1 NUMBER c2 INTEGER);
CREATE USER a IDENTIFIED BY a;
GRANT SELECT, UPDATE ON t1 TO a;
ALTER TABLE t1 ADD c3 INT;
COMMIT;
前の例で、GRANT文はALTER TABLE文の後で発行する必要があります。そうでないと、
ユーザーは新しい列c3を更新できません。
ロール名 ロール名 ロール名
ロール名 ロールに付与される権限ロールに付与される権限ロールに付与される権限ロールに付与される権限
ADMIN ユーザーは別のユーザーを作成でき、スキーマ内のどのオブジェク
トに対してもDDLおよびADMIN以外の権限を付与できます。
ユーザーは、SQL文内で、次のコマンドを実行できます。
CREATE SCHEMA、CREATE USER、ALTER USER、DROP USER、DROP SCHEMA、GRANTおよびREVOKE。
DBA/DDL ユーザーは、別の状況ではSYSTEMによってしか発行できない、
次のDDL文を発行できます。
All ADMIN権限、CREATE TABLE、CREATE ANY TABLE、 CREATE VIEW、CREATE ANY VIEW、CREATE INDEX、 CREATE ANY INDEX、ALTER TABLE、ALTER VIEW、DROP TABLE、DROP VIEWおよびDROP INDEX。
RESOURCE RESOURCEロールはDBA/DDLロールと同じレベルの制御を付与 しますが、ユーザー自身のドメイン上でのみ可能です。ユーザー は、SQL文内で、次のコマンドを実行できます。
ユーザー自身のスキーマの下の任意のオブジェクトのCREATE TABLE、CREATE VIEW、CREATE INDEX、CREATE
CONSTRAINT、ALTER TABLE、ALTER VIEW、ALTER INDEX、 ALTER CONSTRAINT、DROP TABLE、DROP VIEW、DROP INDEX、DROP CONSTRAINTおよびGRANTまたはREVOKE権 限。
ALTER USER
例 例 例 例1
次の例は、MICHAELという名前のユーザーを作成し、そのユーザーにADMINロールの権 限を付与します。
CREATE USER MICHAEL IDENTIFIED BY SWORD;
GRANT ADMIN TO MICHAEL;
例 例 例 例2
次の例は、MICHAELという名前のユーザーを作成し、ユーザーに、EMP表に対する
INSERTおよびDELETE権限を付与します。
CREATE USER MICHAEL IDENTIFIED BY SWORD;
GRANT INSERT, DELETE ON EMP TO MICHAEL;
例 例 例 例3
次の例は、新しく作成されたユーザーMICHAELに、PRODUCT表に対するALL権限を付 与します。
GRANT ALL ON PRODUCT TO MICHAEL;
関連項目 関連項目 関連項目 関連項目 REVOKE
INSERT
構文 構文 構文 構文 図 図 図
図4-45 INSERTコマンドコマンドコマンドコマンド
用途 用途 用途 用途
表またはビューの実表に行を追加します。
ALTER USER
SQLコマンド 4-73 前提条件
前提条件 前提条件 前提条件
表またはビューに列を追加するには、データベースにSYSTEMとしてログインするか、表 およびビューがユーザーのスキーマ内に必要です。
表表
表表4-40 INSERTコマンドで使用される引数コマンドで使用される引数コマンドで使用される引数コマンドで使用される引数
使用上の注意 使用上の注意 使用上の注意 使用上の注意
■ column引数内では、同じ列名は一度しか使用できません。
■ column引数からの列を省略すると、Oracle Liteは、表が作成されるときに指定された
デフォルト値を割り当てます。
■ column引数に指定される列数は、提供される値の数と同数にしてください。column引
数を省略する場合、値の数は表の次数と同じにしてください。
■ 列にユーザー定義のデフォルト値がない場合、デフォルト値はNULLとなります。列に
NOT NULL制約がある場合でも、デフォルト値はNULLとなります。このため、
INSERT文によりそのような列に明示的な値が提供されない場合、Oracle Liteは、整合
性違反エラー・メッセージを生成します。
引数 引数 引数
引数 説明説明説明説明
schema 表またはビューを含むスキーマ。schemaを省略すると、Oracle Lite
は、表またはビューがユーザー自身のスキーマ内にあると解釈しま す。
table 行を挿入する表の名前。
view 実表に行を挿入するビューの名前。
column 表またはビューの列。挿入された行の中でこの引数にリストされてい
る各列には、VALUES句または副問合せからの値が割り当てられま す。
この引数からの表の列の1つを省略すると、挿入された行の列値は、
表が作成されたときに指定された列のデフォルト値となります。
column引数を指定しない場合、VALUES句または問合せで表内のす べての列の値を指定する必要があります。
VALUES 表またはビューに挿入される行の値を指定します。VALUES句には、
column引数で指定した各列の値を指定します。
expr 対応する列に割り当てられた値。これは、ホスト変数を指定できま す。詳細は、「式の指定」を参照してください。
subquery 表に挿入される行を返すSELECT文。この副問合せのSELECTリス
トには、INSERT文の列リストと同数の列が必要です。
ALTER USER
例 例 例 例
INSERT INTO EMP (EMPNO, ENAME, DEPTNO) VALUES ('7010', 'VINCE', '20');
関連項目関連項目 関連項目関連項目
DELETE、UPDATE
LEVEL 疑似列 疑似列 疑似列 疑似列
用途 用途 用途 用途
LEVEL疑似列は、階層問合せを実行するSELECT文内で使用できます。階層問合せで返さ
れた各行について、LEVEL疑似列はルート・ノードには1、ルートの子には2、というよう に返します。階層問合せでは、ルート・ノードは逆ツリー内で最も上位のノード、子ノード はルート以外のノード、親ノードは子のあるノード、リーフ・ノードは子のないノードで す。
前提条件 前提条件 前提条件 前提条件 なし。
使用上の注意 使用上の注意 使用上の注意 使用上の注意
階層問合せにより返されるレベル数は、32以下に制限されています。
例例 例例
次の文により階層順序内の従業員がすべて返されます。ルート行は、仕事がPRESIDENTの 従業員になるように定義されます。親行の子行が、親行の従業員番号をマネージャ番号とし て含む行として定義されています。
SELECT LPAD(' ',2*(LEVEL-1)) || ename org_chart, empno, mgr, job
FROM emp
START WITH job = 'PRESIDENT' CONNECT BY PRIOR empno = mgr;
次の結果を返します。
ORG_CHART EMPNO MGR JOB 7839 PRESIDENT JONES 7566 7839 MANAGER SCOTT 7788 7566 ANALYST ADAMS 7876 7788 CLERK FORD 7902 7566 ANALYST SMITH 7369 7902 CLERK CLARK 7782 7839 MANAGER
ALTER USER
SQLコマンド 4-75 MILLER 7934 7782 CLERK
BLAKE 7698 7839 MANAGER WARD 7521 7698 SALESMAN JAMES 7900 7698 CLERK TURNER 7844 7698 SALESMAN ALLEN 7499 7698 SALESMAN MARTIN 7654 7698 SALESMAN 14 rows selected.
関連項目関連項目 関連項目関連項目
ROWNUM疑似列