oracle - 哪个 oracle 数据库用户用于创建表、过程、视图、删除它们并插入到表中
问题描述
我必须知道哪个用户拥有开发人员的角色和权限,如何将他连接到我的可插拔数据库并允许他创建、删除、删除、插入表、创建和删除过程/函数/视图。在我的应用程序 jdbc 中,我可以使用哪个用户。
解决方案
这是您的数据库吗?我的意思是,您创建了它吗?
那么答案是,您需要为您的应用程序创建至少一个模式,并且可能多达三个。
这是别人的数据库吗?如果是这样,他们应该为您提供您打算使用的帐户的凭据。
假设这是您自己刚刚创建的数据库,请务必不要使用这些默认管理员帐户来执行您的应用程序工作:
- 系统
- 系统
相反,请使用这些帐户为您的应用程序创建用户。
请注意,此 USER 将能够对它拥有的任何对象(SCHEMA)做任何它想做的事情。
出于这个原因,您经常会在 Oracle 数据库中找到这种应用程序布局:
- 应用程序数据的模式(表、视图、物化视图)
- 应用程序代码的模式(PL/SQL 和可能存储的 Java 过程)
- 应用程序用户的模式
没有人可以作为应用程序模式登录。
第二个模式中的存储过程只被给予绝对必要的权限来完成他们的工作——也许是在一个表上读取/选择,但如果它只是一个获取数据的过程,则不是插入或更新。
第 3 个模式仅在第 2 个模式上被赋予执行权限。
如果您创建用户,他们可以执行您提到的任何/所有事情 -
创建、删除、删除、插入表、创建和删除过程/函数/视图
但是除非您授予他们这样做的能力,否则他们将无法对另一个模式中的对象/数据执行任何操作。在大多数情况下,您不会这样做。您将编写一个 PL/SQL API 来完成这项工作,然后将此 API 上的执行权限授予您的 APP 用户。
推荐阅读
- c# - Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerProvider - 尝试从 Postman 生成令牌时,clientId 和 clientSecret 为空
- c# - 如何允许用户删除已被 Console.ReadLine() 读取的文本;
- xpages - XAgent 打破了以前的导航
- java - 在没有 Spring TaskExecutor 或线程池实现的情况下运行 Spring 项目
- sql-server - 使用MVC模型将字符串中的特殊字符存储在数据库中
- batch-file - <无缘无故出乎意料
- java - 仅装载一种类型(一种颜色)的卡车
- user-interface - 如何在 Flutter 中的卡片后面添加阴影?
- python - 使用 Ubuntu 20.4 和 Python Imaplib:我可以覆盖 ssl.SSLError: [SSL: DH_KEY_TOO_SMALL] 吗?
- python - 如何序列化keras模型的类对象