【问题标题】:ORACLE 7.3 user managementORACLE 7.3 用户管理
【发布时间】:2009-05-25 20:05:11
【问题描述】:

在工作中,我有一个基于 Oracle 7.3 的应用程序(旧的东西,是的)。最近我尝试创建一个能够在所有表上进行 SELECT 的帐户,但没有别的,即没有更新或删除。但是每当我创建一个新帐户时,它已经可以访问所有应用程序表。我什至将其简化为仅创建会话。这没有帮助 - 用户仍然可以更新任何表!

所以,我发现有一大堆公共同义词与表命名完全相同(即表 myTable123,公共同义词 myTable123)。我删除了其中一个,用户无法在该特定表上进行选择。然后我创建了一个新表,显然新用户看不到它。我为该表添加了公共同义词,希望用户能够访问它。不幸的是,新用户看不到它..这是有道理的,因为没有给予任何授权。必须有别的东西......

我不是 Oracle 专家,我正在努力解决这个问题,但到目前为止还没有运气。 请帮助您提出任何建议。 干杯!达摩

【问题讨论】:

    标签: database oracle schema user-management


    【解决方案1】:

    正如 tuinstoel 所说,您可以忽略公共同义词 - 这不会影响权限。

    您可能在创建原始表时创建者做了一个

    grant [permissions] on [table] to public
    

    其中 [permissions] 可以与“all”一样广泛,这意味着任何新用户都将自动获得对这些表的权限。

    select * from ALL_TAB_PRIVS where table_name = '[one of your problem tables]'
    

    退货?

    顺便说一句 - 从未使用过 Oracle 7.3.3 - 我假设权限模型没有太大变化。

    【讨论】:

    • 流浪汉,感谢您的回答!我想你搞定了。这周我在放假,但我一回来工作就会检查它。谢谢!达摩
    【解决方案2】:

    Oracle 7.3 不仅旧,而且非常、非常、非常旧。它是 12 或 13 岁。

    创建或删除公共 syns 不会更改任何人访问表的权限。创建公共同义词的唯一原因是可以访问表而不用为其模式名称添加前缀。

    我认为您的老用户拥有“更新任何表”和“选择任何表”或“dba”等特权。

    【讨论】:

    • 我认为它是 14 岁。这些文件的版权为 1995 年。
    猜你喜欢
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 2018-09-18
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多