GRANT

権限を付与します。

情報漏洩事件が多発する昨今、SEにとって理解しておかないといけないSQLの一つです。
「どの情報には誰(user)が、権限を持つ人(roll)がアクセス可能か?」といった権限の設定が可能になります。

これとともにAUDIT(監査)などのSQLも理解しておくと良いと…
GRANTで権限を制限し、AUDITでアクセスしたユーザのログを保存していくことになるかと…

ANSI (一般的な記述)

GRANT privilage [, ...]
  [ ON object_name [, ...] ]
  TO user_name [, ...] ]

Oracle (システム権限を付与)

GRANT {system_privilege | ALL PRIVILEGES} [, ...]
  [ ON object_name [, ...] ]
  TO { user_name | roll_name | PUBLIC } [, ...] ]
  [IDENTIFIED BY password]
  [ WITH ADMIN OPTION ]
WITH ADMIN OPTION句を指定したとき…
与えられたシステム権限を他のユーザーにも与えることができるようになります。

Oracle (オブジェクト権限を付与)

GRANT {object_privilege | ALL PRIVILEGES} [, ...]
  [ ON schema_name.object_name [, ...] ]
  TO { user_name | roll_name | PUBLIC } [, ...] ]
  [ WITH GRANT OPTION ]
  [ WITH HIERARCHY OPTION ]
WITH GRANT OPTION句を指定したとき…
与えられたオブジェクト権限を他のユーザーにも与えることができるようになります。
WITH HIERARCHY OPTION句を指定したとき…
今後作成されるサブオブジェクトを含めたすべてのサブオブジェクトに対して権限を付与できるようになります。

SQL Server

GRANT privilage [, ...]
  [ ON object_name [, ...] ]
  TO user_name [, ...] ]
  [ WITH GRANT OPTION ]

 

*
Oracle環境にて、SELECT、UPDATE、INSERTする権限をユーザ”UserA”に渡す場合…

GRANT SELECT, UPDATE, INSERT
   TO UserA

*
Oracle環境にて、スキーマ”SchemaX”のテーブル”TableY”への、SELECTする権限をユーザ”UserA”に渡す場合…

GRANT SELECT, UPDATE, INSERT
   ON SchemaX.TableY
   TO UserA