ODBC - 获取 DB2 用户表

ODBC - Get DB2 user tables

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

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

我发现我可以打电话

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

但是这个 returns table 在名为 "UserName" 的模式中,而不是我可以作为该用户访问的那些。

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

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

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

对于 Linux/Unix/Windows 的 Db2-server,您可以查询 SYSCAT.TABAUTH view and related views (if you have access, which is the default), or you can call a stored procedure AUTH_LIST_AUTHORITIES_FOR_AUTHID 并处理其输出。

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

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