gpt4 book ai didi

sql - 相当于 SQL Server SCHEMA 的 Oracle

转载 作者:行者123 更新时间:2023-12-04 14:12:18 24 4
gpt4 key购买 nike

我有一项将 SQL Server 数据库迁移到 Oracle 的任务。

我们的 SQL Server 数据库中有几个不同的 SCHEMA,我必须在 Oracle 中创建类似的东西。
在 SQL Server 中,SCHEMA 就像 C# 中的命名空间。但据 Oracle 文档所了解,Oracle 中的 Schema 与 SQL Server 中的 Schema 含义大不相同。

更具体地说,我在 SQL Server 中有以下 SQL 语句:

CREATE SCHEMA Accounting

CREATE TABLE [Accounting].[Payments]
(
ID BIGINT,
Amount MONEY
)

那么这个脚本在 Oracle 中的等价物是什么?

最佳答案

相当于 SQL Server 模式的 Oracle 是一个模式。 Oracle 服务器与单个数据库对话,这就是两者之间的“真正”区别:一个 SQL Server 实例可以连接到多个数据库,而一个 Oracle 实例直接连接到一个数据库。因此,SQL Server 在服务器中使用三部分命名约定,而 Oracle 只有两部分命名约定。

在这两种情况下,模式对象通常都是安全单位——它们便于为对象组分配权限。这两个数据库在一些非常重要的点上有所不同。在 Oracle 中,模式本质上是用户的同义词。 SQL Server 曾经以这种方式组织,但现在架构与用户分离(例如,允许对象在架构之间移动)。

在 SQL Server 中,权限不必在架构级别,尽管这对于组织目的来说通常很方便。例如,您可能在一个模式中拥有用户无法直接访问的底层表。您可以拥有另一个带有 View 的架构,并且该架构有权访问这些表。然后,添加到架构中的新 View 自动具有“正确”权限。

关于sql - 相当于 SQL Server SCHEMA 的 Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34069681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com