可以隐藏 AS/400 数据库表吗?

Posted

技术标签:

【中文标题】可以隐藏 AS/400 数据库表吗?【英文标题】:Can AS/400 Database Tables Be Hidden? 【发布时间】:2010-07-16 20:25:02 【问题描述】:

我试图从 AS/400 数据库的表中删除一条记录。我收到一条错误消息,指出同一架构 ABC 中的另一个表 XYZ 存在引用完整性。

令我惊讶的是,该表不在我的 DbVisualizer 数据库客户端显示的表列表中。

然后我决定对该表 (ABC.XYZ) 进行选择 - 但我取回了记录。考虑到这可能是客户端问题,我使用了另一个客户端(AS/400 Operations Navigator) - 我得到了相同的结果:表不在列表中,但是当我执行 SELECT * FROM ABC.XYZ 时得到了结果

我的问题是,能否以这种方式隐藏 AS/400 表?

(请注意,该表甚至不在视图/系统表/别名/物化查询表中)

【问题讨论】:

首先,它可能不是一个“表”。如果是视图,则不会显示在表格列表中。此外,一些本地文件对于基于 SQL 的客户端可能是“不可见的”,例如多格式逻辑文件。但是,大多数此类文件无法通过 SQL 查询,因此任何 SELECT 都会失败。我们至少需要从系统中查看文件描述,以确定为什么还没有看到文件可以选择。 【参考方案1】:

表可以通过对象的权限“隐藏”。你有 *ALLOBJ 权限吗?

【讨论】:

授权会导致 SELECT 失败。

以上是关于可以隐藏 AS/400 数据库表吗?的主要内容,如果未能解决你的问题,请参考以下文章

我可以用视图(同名)替换表吗?

您可以在 PHP/MySQL 数据库表的每一行中创建/插入表吗?

无法在 SQL 2019 Linux 上使用 PolyBase 通过 ODBC 查询 AS400

在greenplum数据库中,我们可以从查询条件中转储表吗

orm2可以自动建表吗?

将参数传递给 AS400 中的存储过程以匹配 IN 键