【问题标题】:ODBC - Get DB2 user tablesODBC - 获取 DB2 用户表
【发布时间】:2019-12-24 01:59:17
【问题描述】:

在我的 .NET 应用程序中,我使用 ODBC 驱动程序连接到 DB2 数据库。

我想向我的用户显示他可以使用提供的凭据访问哪个表 - 我想从数据库中读取表和列。

我发现我可以打电话

conn.GetSchema("TABLES", { null, "UserName", null });

但这会返回名为“UserName”的架构中的表,而不是我可以作为该用户访问的表。

我是 DB2 数据库的新手,我能以某种方式做到这一点,例如通过查询一些包含特权的系统表吗?我可以使用非管理员凭据吗?

【问题讨论】:

  • 什么操作系统运行 Db2 服务器(Z/OS、i 系列或 Linux/Unix/Windows)? (你需要知道这一点)。
  • 现在是 Win 7 - 但最终我不应该假设任何。

标签: c# .net db2 odbc


【解决方案1】:

每个 Db2 平台(Z/OS、i 系列、Linux/Unix/Windows/cloud)都有不同的目录架构。每个平台和版本的在线知识中心详细介绍了目录视图和表格。

我不确定是否存在任何 ODBC 通用函数来满足您的特定要求。

对于 Linux/Unix/Windows 的 Db2-server,您可以查询 SYSCAT.TABAUTH 视图和相关视图(如果您有权访问,这是默认设置),或者您可以调用存储过程 AUTH_LIST_AUTHORITIES_FOR_AUTHID 并处理其输出。

对于 Db2-for-Z/OS,您可以查询 SYSIBM.SYSTABAUTH 和相关表,具体取决于您的访问权限和本地站点规则。

对于 Db2 for i,您可以查询 QSYS2.SYSTABAUTH 和相关表,具体取决于您的访问权限和本地站点规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 2016-03-09
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    相关资源
    最近更新 更多