【问题标题】:How to get all the tables on which a particular user has access-DB2如何获取特定用户有权访问的所有表-DB2
【发布时间】:2016-02-24 12:41:43
【问题描述】:

我需要知道特定用户的所有表,比如“Abc”有任何(读、写)访问权限。

这在 db2 中可行吗?

【问题讨论】:

    标签: sql db2 database-schema


    【解决方案1】:

    尝试SYSIBMADM.PRIVILEGES 管理视图。您可以在DB2 Knowledge Center 中找到更多相关信息: SELECT AUTHID, PRIVILEGE, OBJECTNAME, OBJECTSCHEMA FROM SYSIBMADM.PRIVILEGES WHERE OBJECTTYPE='TABLE' AND AUTHID='userID'

    【讨论】:

    • 这个视图很好,虽然它只显示了直接授予的权限。更难显示用户可能从ROLEGROUP 或用户可能拥有(或继承)的某些权限继承的权限。如果您还需要间接特权,最好提出一个新的 SO 问题。
    【解决方案2】:

    请使用下方获取用户列表、对应表和访问类型(删除、修改、更新、选择等),

    SELECT GRANTE,TTNAME,GRANTOR,DATEGRANTED,GRANTEETYPE,SELECTAUTH,ALTERAUTH,DELETEAUTH,INDEXAUTH,INSERTAUTH,DBNAME,SCREATOR,STNAME,
    TCREATOR , AUTHHOWGOT , 时间戳 , TIMEGRANTED , UPDATECOLS ,
    UPDATEAUTH , IBMREQD , GRANTEELOCATION , 位置 ,
    “碰撞”,CONTOKEN,CAPTUREAUTH,REFERENCESAUTH,REFCOLS,
    GRANTEDTS , TRIGGERAUTH , GRANTORTYPE
    FROM "SYSIBM".SYSTABAUTH
    WHERE ( GRANTOR like '%'
    AND GRANTE like '%' ) ;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 1970-01-01
      • 2019-03-20
      相关资源
      最近更新 更多