【问题标题】:Query Table Without SELECT Access没有 SELECT 访问的查询表
【发布时间】:2019-09-18 15:18:07
【问题描述】:

我在一家大公司工作。我没有对某个表的 SELECT 访问权限,我们称之为 NO_ENTRY。我可以查看 NO_ENTRY 的架构并且只对两列感兴趣。在不询问我的 dba 的情况下,是否可能看到这两列中的部分或全部数据?

如果相关,我确实可以选择访问至少一个引用 NO_ENTRY 的视图;它只是没有感兴趣的列。我可能对其他包含感兴趣的列的视图具有 SELECT 访问权限。

我尝试查找具有相似数据源但不存在的表。是否可以查询 Teradata 以获取我具有 SELECT 访问权限并引用 NO_ENTRY 中感兴趣的两列的视图列表?

如果没有,是否有任何其他可能的解决方法来查看 NO_ENTRY 的两个感兴趣的列?

【问题讨论】:

  • 您收到满意的答复了吗?如果是这样,您可能希望通过将答案标记为已接受来结束您的问题。

标签: sql database teradata


【解决方案1】:

不,没有合理的可能性。如果 DBA 通过视图公开了一些 NO_ENTRY 的字段并且不允许对 NO_ENTRY 进行 SELECT,那么这些是您可以访问的唯一字段。如果您确实需要访问您当前无权访问但又需要它们的 2 个字段,只需非常友好地询问 DBA,并说明您需要访问这 2 个字段的合理理由。

【讨论】:

  • 您可能还需要询问数据源的业务所有者是否可以访问这些列。有时,DBA 的双手被束缚在分发对数据模型某些部分的访问权限上。
【解决方案2】:

首先,如果您还没有用尽这条路线,请从您的数据建模或 DBA 团队中寻找数据字典或数据模型。我不确定您的环境的敏感性以及哪些信息可供开发人员或最终用户使用,但在许多环境中,提供了数据字典来帮助用户导航他们有权使用的数据模型或语义访问层.

如果数据字典、数据建模师和 DBA 不愿意提供帮助,您可以利用 DBC 视图查看您能找到什么。 DBC 中的“X”视图将用户限制为只能查看他们创建或已被授予访问权限的对象。在这里闲逛不应该发出任何危险信号。或者,根据您的环境,您还可以查询非 X 视图(使用以“V”结尾的视图来说明 UNICODE 和长对象名称)。

如果视图定义中的列没有别名,您可以使用 DBC.ColumnsV 或 DBC.ColumnsXV 找到您感兴趣的内容。

SELECT DatabaseName
     , TableName
     , ColumnName
  FROM DBC.ColumnsXV
 WHERE ColumnName = ‘{ColumnName}’
   AND TableName = ‘{ViewName}’
   AND DatabaseName = ‘{DatabaseName}’;

如果列有别名,您的搜索将更加困难。您可以使用模式搜索(例如 LIKE、POSITION、REGEXP_INSTR 等)查看 DBC.TablesXV 中的 CreateTextLastAlterText

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    相关资源
    最近更新 更多