【问题标题】:Which oracle database user to use for creating tables, procedures, views, deleting those and insert into tables [closed]哪个 oracle 数据库用户用于创建表、过程、视图、删除它们并插入表 [关闭]
【发布时间】:2019-07-02 11:05:36
【问题描述】:

我必须知道哪个用户拥有开发人员的角色和权限,如何将他连接到我的可插拔数据库并允许他创建、删除、删除、插入表、创建和删除过程/函数/意见。 在我的应用程序 jdbc 中,我可以使用哪个用户。

【问题讨论】:

    标签: oracle ddl privileges


    【解决方案1】:

    这是您的数据库吗?我的意思是,您创建了它吗?

    那么答案是,您需要为您的应用程序创建至少一个架构,可能多达三个。

    这是别人的数据库吗?如果是这样,他们应该为您提供您打算使用的帐户的凭据。

    假设这是您自己刚刚创建的数据库,请务必不要使用这些默认管理员帐户来执行您的应用程序工作:

    • 系统
    • 系统

    改为使用这些帐户为您的应用程序创建用户。

    请注意,此 USER 将能够对其拥有的任何对象(SCHEMA)做任何想做的事情。

    因此,您经常会在 Oracle 数据库中找到这种应用程序布局:

    1. 应用程序数据(表、视图、物化视图)的架构
    2. 应用程序代码的架构(PL/SQL 和可能的 Java 存储过程)
    3. 应用程序用户的架构

    没有人可以作为应用程序架构登录。

    第二个模式中的存储过程只被赋予了绝对必要的权限来完成他们的工作——也许是在一个表上读取/选择,但如果它只是一个获取数据的过程,则不是插入或更新。

    第三个模式只在第二个模式上被赋予执行权限。

    如果你创建了一个用户,他们可以做你提到的任何/所有事情 -

    创建、删除、删除、插入表、创建和删除 程序/函数/视图

    但除非您授予他们这样做的能力,否则他们将无法对另一个架构中的对象/数据执行任何操作。在大多数情况下,您不会这样做。您将编写一个 PL/SQL API 来完成这项工作,然后将此 API 上的执行权限授予您的 APP 用户。

    【讨论】:

      猜你喜欢
      • 2020-09-02
      • 2019-08-20
      • 2015-04-28
      • 1970-01-01
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      相关资源
      最近更新 更多