【DB】DCL(データ制御言語)

DBの勉強の続きをしていきます!!
今回のテーマはDCLについて!!



DCL(データ制御言語)

DCLについては、SQLの回でも勉強しましたが、DBのテーブルやビューに対してアクセス制御を行うための言語になります。「GRANT」を使用したアクセス権限の付与や削除、「TRANSACTION」を使用したトランザクションの管理を行います。



アクセス権限の管理(GRANT)

DBのテーブルやビューに対して、アクセス権限の制御を実施します。SELECT(表示)・INSERT(挿入)・UPDATE(更新)・DELETE(削除)・REFERENCES(参照)・USAGE(使用)のアクセス権限が存在します。


[構文]

GRANT
 ALL PRIVILEGES –全ての権限を付与 |
 SELECT –SELECT権限 |
 INSERT –INSERT権限 |
 UPDATE –UPDATE権限 |
 REFERENCES –REFERENCES権限 |
 USAGE –USAGE権限 |
ON テーブル名やオブジェクト名
TO ユーザ名やロール名


[例]
USE [TestDB]
GO

--user1へテーブルのすべての権限を付与
GRANT  ALL PRIVILEGES 
ON USERMANAGE
TO user1

--guestへテーブルの参照権限を付与
GRANT SELECT 
ON USERMANAGE
TO guest

GO



トランザクションの管理

トランザクションの開始(START TRANSACTION)やコミット(COMMIT),トランザクション処理の取り消し(ROLLBACK)を行います。


[構文]

START TRANSACTION
ISOLATION LEVEL –分離レベル
READ UNCOMMITTED | –コミットしていないデータも読み取り
READ COMMITTED | –コミットした最新データも読み取り
REPEATABLE READ | –共有ロック
SERIALIZABLE | –トランザクションを順番に制御


[例]
USE [TestDB]
GO

--トランザクション分離レベルの設定
SET TRANSACTION ISOLATION LEVEL READ COMMITTED

--トランザクション開始
BEGIN TRANSACTION

--テーブル更新
INSERT INTO [STOREMANAGE]
  ([Store_id]
  ,[Store_name]
  ,[Store_adress])
VALUES
  (2
  ,'神奈川店'
  ,'神奈川県 xx')

--コミット
COMMIT

GO
※私のローカル環境はSQLServerを使用しているため使用方法が少し異なります。


今回は以上!!




【ブログを始めるなら】

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA