【问题标题】:What permissions do I need to use the SHOW TABLE command in Teradata?在 Teradata 中使用 SHOW TABLE 命令需要什么权限?
【发布时间】:2026-01-16 23:25:02
【问题描述】:

在 Teradata 中使用 SHOW TABLE 命令需要什么权限?

我查看了 Teradata 数据字典、Teradata 管理员用户指南并在 Google 上进行了搜索,但找不到任何相关文档。

我收到了错误:

用户无权访问 xxx.yyy

【问题讨论】:

  • “什么都不告诉我”?它必须显示一些错误
  • 是的,它显示错误:用户无权访问 xxx.yyy

标签: sql teradata


【解决方案1】:

SHOW 权限在表级别和数据库级别可用,允许用户查看 表定义和访问 DCL 语句(如 SHOW TABLE、HELP TABLE、HELP STATS 等),而无需 SELECT 访问表。 向开发人员或服务人员授予 SHOW 权限以允许访问信息 关于对象并查看结构,但对任何数据没有任何实际访问权限。 任何具有 "WITH GRANT" 选项的用户都可以将 SHOW 权限授予其他人。

以下是将单个表上的 show table 授予用户的语法。

GRANT SHOW ON TableName TO UserName

以下是将数据库中所有表的 show table 授予用户的语法。

GRANT SHOW ON DatabaseName TO UserName

【讨论】:

  • 好的,它有效。但是如果我想向所有模式/表授予显示呢?
  • 使用数据库名代替表名
  • @emaillenin 是的,它可以工作,但我仍然只能将 show 授予一个数据库/表。当我创建新的模式时,我必须再次授予 SHOW 权限;/ 我怎样才能为所有模式(包括新模式/表)做到这一点?
  • 如果您引入存储过程来管理数据库的创建,那么您可以捆绑其他语句,例如将新创建的数据库的 SHOW 权限包含到管理您所有 SHOW 权限的 ROLE用户的集合。然后,您还可以为您的 ARC 用户角色添加 DUMP、RESTORE 权限,并为您的管理员添加数据库中包含的表的权限。
  • @emaillenin 1 个问题:我知道我还可以授予选择权限以显示表:GRANT SELECT ON DBC TO user;但是 DBC 中的什么表?我不想为 DBC 中的所有表授予选择权限。那么什么表呢?是 TextTbl 吗?