|
■データ制御文(DCL)
・データ制御文には、データの変更を確定したり、キャンセルなどを定義します
1. GRANT
2. REVOKE
3. BEGIN
4. COMMIT
5. ROLLBACK
6. LOCK
7. SET TRANSACTION
■GRANT
・特定のデータベース利用者に、特定の作業を行う権限を与える
GRANT 権限名 ON オブジェクト名
TO "ユーザ名"または"public"
With GRANT OPTION(省略可)
|
【対象権限名】
| キー名 |
説明 |
| SELECT |
データの参照 |
| INSERT |
データの追加 |
| UPDATE |
データの変更・修正 |
| DELETE |
データの削除 |
| REFERENCES |
他テーブルの外部キーを作成 |
| ALL |
すべての操作 |
【例】
// ユーザBにユーザAが作成したテーブルのデータに対して参照権限を与える
GRANT SELECT ON A_user.table TO B_user
// ユーザBにユーザAが作成したテーブルのデータに対して更新・削除の権限を与える
GRANT UPDATE, DELETE ON A_user.table TO B_user
// ユーザBにユーザAが作成したテーブルのデータに対して更新・削除の権限を与え且つ
// ユーザBがユーザCに同等の権限を与えられるようにする
GRANT UPDATE, DELETE ON A_user.table TO B_user WITH GRANT OPTION
|
一覧へ
■REVOKE
・特定のデータベース利用者から、アクセス権限を取り消します
REVOKE 権限 ON テーブル FROM ユーザ名;
|
【例】
// publicに与えたtableテーブルに対する挿入権限を取り消す
REVOKE INSERT ON table FROM PUBLIC;
// a_userに与えたtableテーブルに対する全ての権限を取り消す
REVOKE ALL PRIVILEGES ON table FROM a_user;
|
一覧へ
■BEGIN
・トランザクションブロックを初期化します。つまり、BEGINコマンドの後の分は、
COMMITまたはROLLBACKが与えられるまで、単一のトランザクションの中で実行される
※トランザクションとは、複数のINSERTやUPDATE命令をまとめたもの
一覧へ
■COMMIT
・現在のトランザクションを確定します
一覧へ
■ROLLBACK
・現在のトランザクションを取消します
一覧へ
■LOCK
・テーブルなどの資源をロックします
・通常、更新系のSQL文(INSERT文、DELETE文、UPDATE文)を実行時には、WRITEロックが自動的に発行され
検索系のSQL文(SELECT文)などは、READロックが発行される
・明示的にテーブルをロックする場合は、LOCK TABLES文やUNLOCK TABLESを発行する
一覧へ
■SET TRANSACTION
・各トランザクションの特性を制御します。
SET TRANSACTION { WAIT 60/n } ;
|
【詳細】
WAIT 60/n
(DBライブバージョンのみ) |
タイムアウトまでの、サーバーからの応答の待ち時間を指定します。
デフォルトは60秒です。 0を指定すると間隔は無限になります。 |
| ISOLATION LEVEL 1/CS/3/RR |
後続トランザクションの分離レベルを設定します。ISOL LEVELは、ISOLATION LEVELの省略形です。
1/CS
現在のデータ読み取り処理が終了した後かつ最初のトランザクションがコミットされる前に、そのデータは他のトランザクションにより変更できます。CS(カーソル固定)および 1は同義です。
3/RR
トランザクション内で同一のデータの読み取りを複数回行って、また同じ結果を得ることができます。RR(反復読み取り)および 3は同義です。分離レベルを変更するSET TRANSACTIONコマンドが発行されない限り、デフォルトは3またはRRです。
|
| READ ONLY/RO |
読み取り専用アクセスを可能にします。つまり、NOMADは、更新・挿入・削除を行いません。さらに、NOMADは読み取り専用モードになっていることをSQL Serverに伝えます。クライアントライブラリ:ロックするという意味で、読み取り専用に設定された回答を開くことができます。READ ONLY、RDONLY、ROはすべて同じです。
|
| READ WRITE/RW |
読み取りおよび書き込みアクセスを可能にします。このタイプのアクセスでは、どの分離レベルも使用できます。READ WRITEおよびRWは同義です。アクセスタイプを変えるようなSET TRANSACTIONコマンドが発行されない限り、デフォルトはREAD WRITEまたはRWです。
|
一覧へ
|