- 2010-04-19 Mon 23:40:05
- db2
前回はこちら(http://hitai.blog72.fc2.com/blog-entry-55.html)
えーと、この前は認証のあたりを勉強しました。
今度は権限と特権です。
オラクルでは権限というと、CREATE TABLE権限とかCREATE SEQUENCE権限といったシステム権限と、SELECT ON 表名といったオブジェクトへのアクセス権を指定するオブジェクト権限があるわけですが、DB2の権限は複数の権限のセットで、オラクルのロールっぽいイメージみたいです。
DB2にもロールはロールで別にあるみたいなので、ちょっと表現が違うかもしれませんが。
で、権限で主だったものには以下の5つがあるようです。
・SYSADM
・SYSCTRL
・SYSMAINT
・SYSMON
・DBADM
・LOAD
それぞれが何をする権限なのか、は一旦置いといて、この権限の分類から。
上記権限のSYSで始まる名前のもは、インスタンス単位で付与される権限です。
その中でもSYSADM権限はすべての操作が可能な強力な権限になります。
細かい解説はこちらで。
この権限は、自動で付与されるユーザと、明示的な付与を受けるユーザがいます。
自動で権限を付与されるのは、インスタンスの所有者ユーザ。
それと、dbm cfgのSYSADM_GROUPにOSグループ名が指定されている場合、そのグループに所属するユーザにも与えられます。
で、このSYSADM_GROUPがnullの場合には、OSの管理者グループに与えられる。
という説明があるんだけど、OSの管理者グループって、unixのrootグループとか、winのadministratorsグループのことなのか、それともインスタンスの所有者が所属しているグループのことなのかが未検証。
DB2ではユーザ認証はos側でやるため、インスタンスに関する権限はosグループに対して与えられるという考えぽい。
参考になりそうなQAページを見つけたのでリンクを貼っておきます。
http://www-01.ibm.com/support/docview.wss?uid=std38260b7e2626b3298492572ad000dbf26
このSYS~権限についてはdb2 get dbm cfgでみるしかないっぽいんだけど、オラクルのshow parameter みたいに絞り込みができないのがちょっと不満。
unix系のosを使っているのなら
db2 get dbm cfg | grep SYS
みたいに結果をgrepすればそれっぽいことができるかも。
windowsでも、適当なgrepコマンドにpathを通しておけば同様に使えました。
客先とかで、grepを入れられない場合には、
db2 get dbm cfg > cfg.txt
とか、適当なファイルにリダイレクトして、エディタで開いてCtrl+Fで検索とかなのかな。
V8の試験対策本では、SYS~権限でこれができる、できないって問題がちょいちょい出てるみたいだから、一覧表できっちり抑えておこう。
で、DBADM,LOAD他の権限はDB単位で付与するもので、grant文で付与します。
grant sysadm on database to ユーザ名
to の後ろは
to ユーザ名 / to グループ名
どちらでも書ける。
ただし、ユーザ名とグループ名で同じ名前がある場合には
to USER ユーザ名 / to GROUP グループ名
とすること。
ちなみにrevokeするには
revoke sysadm on database from ユーザ名
権限の保持状態を確認するには
SELECT * FROM syscat.dbauth
なんだけど、ここでちょいとハマリ。
dbadmをrevokeしても、syscat.dbauthに権限情報が残る。
これは、dbadmを付与する際に、関連する下位の権限も一緒に付与されており、dbadmだけをrevokeしてもそれらが残ってしまうから。
http://www.ibm.com/developerworks/jp/data/library/dataserver/j-d_db2security01/
こちらの表3.データベース権限、に記載されているものは、個別にrevokeする必要があるので注意。
dbの権限も試験対策本で結構突っ込んだ問題があったようなので、きっちり対策をすること。
といったところで、今日はここまで。
次は特権周りを確認する予定。
えーと、この前は認証のあたりを勉強しました。
今度は権限と特権です。
オラクルでは権限というと、CREATE TABLE権限とかCREATE SEQUENCE権限といったシステム権限と、SELECT ON 表名といったオブジェクトへのアクセス権を指定するオブジェクト権限があるわけですが、DB2の権限は複数の権限のセットで、オラクルのロールっぽいイメージみたいです。
DB2にもロールはロールで別にあるみたいなので、ちょっと表現が違うかもしれませんが。
で、権限で主だったものには以下の5つがあるようです。
・SYSADM
・SYSCTRL
・SYSMAINT
・SYSMON
・DBADM
・LOAD
それぞれが何をする権限なのか、は一旦置いといて、この権限の分類から。
上記権限のSYSで始まる名前のもは、インスタンス単位で付与される権限です。
その中でもSYSADM権限はすべての操作が可能な強力な権限になります。
細かい解説はこちらで。
この権限は、自動で付与されるユーザと、明示的な付与を受けるユーザがいます。
自動で権限を付与されるのは、インスタンスの所有者ユーザ。
それと、dbm cfgのSYSADM_GROUPにOSグループ名が指定されている場合、そのグループに所属するユーザにも与えられます。
で、このSYSADM_GROUPがnullの場合には、OSの管理者グループに与えられる。
という説明があるんだけど、OSの管理者グループって、unixのrootグループとか、winのadministratorsグループのことなのか、それともインスタンスの所有者が所属しているグループのことなのかが未検証。
DB2ではユーザ認証はos側でやるため、インスタンスに関する権限はosグループに対して与えられるという考えぽい。
参考になりそうなQAページを見つけたのでリンクを貼っておきます。
http://www-01.ibm.com/support/docview.wss?uid=std38260b7e2626b3298492572ad000dbf26
このSYS~権限についてはdb2 get dbm cfgでみるしかないっぽいんだけど、オラクルのshow parameter みたいに絞り込みができないのがちょっと不満。
unix系のosを使っているのなら
db2 get dbm cfg | grep SYS
みたいに結果をgrepすればそれっぽいことができるかも。
windowsでも、適当なgrepコマンドにpathを通しておけば同様に使えました。
客先とかで、grepを入れられない場合には、
db2 get dbm cfg > cfg.txt
とか、適当なファイルにリダイレクトして、エディタで開いてCtrl+Fで検索とかなのかな。
V8の試験対策本では、SYS~権限でこれができる、できないって問題がちょいちょい出てるみたいだから、一覧表できっちり抑えておこう。
で、DBADM,LOAD他の権限はDB単位で付与するもので、grant文で付与します。
grant sysadm on database to ユーザ名
to の後ろは
to ユーザ名 / to グループ名
どちらでも書ける。
ただし、ユーザ名とグループ名で同じ名前がある場合には
to USER ユーザ名 / to GROUP グループ名
とすること。
ちなみにrevokeするには
revoke sysadm on database from ユーザ名
権限の保持状態を確認するには
SELECT * FROM syscat.dbauth
なんだけど、ここでちょいとハマリ。
dbadmをrevokeしても、syscat.dbauthに権限情報が残る。
これは、dbadmを付与する際に、関連する下位の権限も一緒に付与されており、dbadmだけをrevokeしてもそれらが残ってしまうから。
http://www.ibm.com/developerworks/jp/data/library/dataserver/j-d_db2security01/
こちらの表3.データベース権限、に記載されているものは、個別にrevokeする必要があるので注意。
dbの権限も試験対策本で結構突っ込んだ問題があったようなので、きっちり対策をすること。
といったところで、今日はここまで。
次は特権周りを確認する予定。
スポンサーサイト
- Newer: DB2 9 エンジニア試験準備 4:セキュリティ その3
- Older: DB2 9 エンジニア試験準備 2:セキュリティ
Comments: 0
Trackback+Pingback: 0
- TrackBack URL for this entry
- http://hitai.blog72.fc2.com/tb.php/56-6f1ab9a3
- Listed below are links to weblogs that reference
- DB2 9 エンジニア試験準備 3:セキュリティ その2 from ヒビコレショウジン