2016-06-29 10 views
1

とIBM DB2 Z/OSにテーブルの上に存在権限を表示するにはDB2 Z/OSでのテーブルまたはビューに存在する権限を表示するSQLの方法はありますか?私はこのようなものを実現したいと思います:どのようにSQL

select * from sysibm.magic_table where table_name = 'users' 

|TABLE_NAME|PRIVILEGE_TYPE|USER_OR_GROUP_NAME| 
|  USERS|  INSERT|    ANDI| 
|  USERS|  SELECT|   ADMINS| 

それは可能ですか?

+0

それほど単純ではないよう。 https://www.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/com.ibm.db2z10.doc.sqlref/src/tpc/db2z_catalogtablesintro.html DBシステムテーブルを見て、Sysresauthは見て1のようになります。 –

+0

Cicsプログラムでは、実際のエンドユーザーではなくアクセスを取得するのはBindです。 –

+1

それは[SYSIBM.SYSTABAUTH](https://www.ibm.com/support/knowledgecenter/SSEPEK_11.0.0/com.ibm.db2z11.doc.sqlref/src/tpc/db2z_sysibmsystabauthtable.html)です。 – mustaccio

答えて

1

このクエリはgrantee列内のユーザー/ロール名とY =右現在、G =右存在し、他の人にそれを付与する権利...auth列の様々な割り当てられrigthsを伝えます。

SELECT 
    grantee, 
    screator, 
    stname, 
    tcreator, 
    ttname, 
    updatecols, 
    alterauth, 
    deleteauth, 
    indexauth, 
    insertauth, 
    selectauth, 
    updateauth 
FROM 
    SYSIBM.SYSTABAUTH 
WHERE 
    TTNAME = 'MY_TABLE' 
    AND TCREATOR = 'MY_SCHEMA' 

サンプルの結果セット:

|GRANTEE |SCREATOR |STNAME |TCREATOR |TTNAME |UPDATECOLS|ALTERAUTH|DELETEAUTH|INDEXAUTH|INSERTAUTH|SELECTAUTH|UPDATEAUTH| 
============================================================================================================================ 
|MY_SCHEMA|MY_SCHEMA|MY_TABLE|MY_SCHEMA|MY_TABLE|   |   |   G|   |   G|   G|   G| 
|USER2 |MY_SCHEMA|MY_TABLE|MY_SCHEMA|MY_TABLE|   |   |   Y|   |   Y|   Y|   Y| 
|USER3 |MY_SCHEMA|MY_TABLE|MY_SCHEMA|MY_TABLE|   |   |   Y|   |   Y|   Y|   Y| 
|GROUP1 |MY_SCHEMA|MY_TABLE|MY_SCHEMA|MY_TABLE|   |   |   Y|   |   Y|   Y|   Y| 
|GROUP2 |MY_SCHEMA|MY_TABLE|MY_SCHEMA|MY_TABLE|   |   |   Y|   |   Y|   Y|   Y| 
|GROUP3 |MY_SCHEMA|MY_TABLE|MY_SCHEMA|MY_TABLE|   |   |   |   |   |   Y|   | 
|GROUP4 |MY_SCHEMA|MY_TABLE|MY_SCHEMA|MY_TABLE|   |   |   Y|   |   Y|   Y|   Y| 

IBM documentation of SYSIBM.SYSTABAUTH(おかげで@mustaccioする)