如何使用 SQL 在 IBM DB2 Z/OS 中的表上显示当前权限

Posted

技术标签:

【中文标题】如何使用 SQL 在 IBM DB2 Z/OS 中的表上显示当前权限【英文标题】:How to show present privileges on table in IBM DB2 Z/OS with SQL 【发布时间】:2016-06-29 06:22:26 【问题描述】:

有没有一种 SQL 方法来显示 DB2 Z/OS 中的表或视图上存在的权限?我想实现这样的目标:

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

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

这可能吗?

【问题讨论】:

不可能这么简单。看看 DB System 表 ibm.com/support/knowledgecenter/SSEPEK_10.0.0/…,Sysresauth 看起来很像 对于 Cics 程序,获得访问权限的是 Bind(而不是实际的最终用户)。 我想应该是SYSIBM.SYSTABAUTH。 谢谢@mustaccio,我认为你是对的。 SELECT grantee, screator, stname, tcreator, ttname, updatecols, alterauth, deleteauth, indexauth, insertauth, selectauth, updateauth FROM SYSIBM.SYSTABAUTH WHERE TTNAME = 'MY_TABLE' AND TCREATOR = 'MY_SCHEMA'。我明天去考试。 【参考方案1】:

此查询告诉grantee 列中的用户/角色名称以及...auth 列中的各种分配权限,其中Y = 正确存在,G = 正确存在和授予他人的权利。

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)

【讨论】:

IBM 文档的链接已失效。请问可以更新吗? 给你@Minh-TrietLÊ

以上是关于如何使用 SQL 在 IBM DB2 Z/OS 中的表上显示当前权限的主要内容,如果未能解决你的问题,请参考以下文章

Oracle GoldenGate 对IBM大型机 z/OS 2.1 和DB2 v11的支持

如何通过 Java Web 应用在 IBM z OS 中提交 JCL?

查询以选择具有特定最后一列的所有表 Ibm Db2 z/os

从 IBM Z/OS 获取日志

如何在 DB2 for Z/OS 中返回系统日期或日期时间?

如何在 DB2 Z/OS 8.1 版本中创建用户定义函数?