Rav*_*avi 98 schema oracle users
我真的对术语数据库、用户和模式感到困惑。谁能解释一下它们之间的区别(如果是的话)?
如果它们相同,那么它们之间有什么相似之处?我们如何使用它们?我们如何创建它们?
Mat*_*Mat 97
在 Oracle 中,用户和模式本质上是一回事。您可以认为用户是用于连接数据库的帐户,架构是属于该帐户的一组对象(表、视图等)。
请参阅 Stack Overflow 上的这篇文章:Oracle 中的用户和模式之间的区别?了解更多详情和额外链接。
您使用create user语句创建用户。这也“创建”了架构(最初为空) - 您不能创建架构,它与用户相关联。创建用户后,管理员可以向用户授予权限,这将使其能够创建表、执行select查询等insert。
数据库是包含您创建的所有用户及其数据(以及使整个事情正常工作的一堆预定义系统用户、表、视图等)的东西。您应该查看概念指南中的Oracle 数据库架构文档(实际上,整个页面都值得一读 - 该页面上方有一个关于用户和模式的部分)以了解什么是数据库,以及什么是数据库实例是——两个重要的概念。
create database一旦您安装了 Oracle 软件堆栈,您就可以使用该语句创建一个数据库。但是使用dbca(建库助手)比较容易上手。
小智 7
数据库是数据的集合,实际存储数据的地方。它是一个物理内存组件,连接到安装了DBMS软件的计算机来操作该内存组件中的数据,安装了dbms软件的计算机称为服务器或数据库服务器。服务器(计算机)和数据库(内存组件)是不同的,但大多数时候根据情况称为“相同”。
用户和模式这两个词是可以互换的,这就是为什么大多数人对这些词感到困惑的原因。
用户是连接数据库(服务器)的帐户。我们可以使用 CREATE USER IDENTIFIED BY 创建用户。
实际上Oracle数据库包含处理数据的逻辑和物理结构。模式也是处理数据库(内存组件)中数据的逻辑结构。它是在用户创建时由 Oracle 自动创建的。它包含与该模式关联的用户创建的所有对象。例如,如果我创建了一个名为 的用户,santhosh那么 Oracle 创建了一个名为 的模式santhosh,Oracle 将用户创建的所有对象存储santhosh在该santhosh模式中。
我们可以使用该CREATE SCHEMA语句创建模式,但 Oracle 会自动为该模式创建用户。
我们可以使用该DROP SCHEMA <name> RESTRICT语句删除模式,但它不能删除模式包含的对象,因此要删除模式,它必须为空。这里的限制词强制您指定没有对象的模式。
如果我们尝试删除一个在其架构中包含对象的用户,我们必须指定CASCADEword,因为 Oracle 不允许删除包含对象的用户。
DROP USER <name> CASCADE
因此,Oracle 删除模式中的对象,然后自动删除用户,从其他模式(如视图和私有同义词)引用这些模式对象的对象将进入无效状态。
小智 6
为了开始理解差异,我认为我们必须开始说这个命名法是 Oracle 的一个错误。
我假设如果您有一个名为 TRITON 的 ERP,您希望将您的数据库命名为 TRITON,或者如果我的公司名为 JENNY EXPORT,我可能会决定将我的数据库命名为 JENNYEXP 或类似名称,不需要任何具有相同名称的用户.
在 Oracle 中,您需要在创建表之前创建一个 USER,而且很奇怪,这个 TABLES 集合称为 SCHEMA。
然后,您可以创建实际用户并授予适当的权限以按照本示例使用 TRITON 等数据库,顺便说一下,如果您通过 SQL DEVELOPER 进行连接,则必须命名一个连接。
我知道我听起来有点沮丧,但对我来说 MS SQL SERVER 命名约定更有意义,我可以补充一点,我在 SQL SERVER 之前使用 Oracle。
| 归档时间: |
|
| 查看次数: |
247245 次 |
| 最近记录: |