データベースとユーザーとスキーマの違い


78

データベース、ユーザー、スキーマという用語と本当に混同しています。誰かが彼らがお互いにどのように異なっているかを説明できますか?

それらが同じ場合、それらの類似点は何ですか?それらをどのように使用しますか?そして、それらをどのように作成しますか?


:これは基本的な考え方与えることを願っていますanswers.com/Q/Difference_between_user_and_schema_oracle
Sandun Madola

回答:


77

Oracleでは、ユーザーとスキーマは本質的に同じものです。ユーザーはデータベースへの接続に使用するアカウントであり、スキーマはそのアカウントに属するオブジェクト(テーブル、ビューなど)のセットであると考えることができます。

Stack Overflowのこの投稿を参照してください:Oracleのユーザーとスキーマの違いは?詳細および追加のリンクについては。

create userステートメントを使用してユーザーを作成します。これにより、スキーマも「作成」されます(最初は空です)-スキーマ自体を作成することはできません。ユーザーに関連付けられています。ユーザーが作成されると、管理者はユーザーに権限を付与できます。これにより、テーブルの作成、selectクエリの実行insert、およびその他すべてが可能になります。

データベースは、作成したすべてのユーザーとそのデータ(およびすべてを機能させる定義済みのシステムユーザー、テーブル、ビューなどの束)を含むものです。概念ガイドのOracle Database Architectureのドキュメントを参照してください(実際、ページ全体を読む価値があります。そのページの上位にはユーザーとスキーマに関するセクションがあります)。データベースとは何か、そしてデータベースインスタンスは-2つの重要な概念です。

create databaseOracleソフトウェアスタックをインストールしたら、ステートメントを使用してデータベースを作成できます。ただし、dbca(データベース作成アシスタント)を使用する方が簡単に開始できます。


2

用語の使用方法によると、a USERとa SCHEMAは多少似ています。しかし、大きな違いもあります。USERA呼び出すことができるSCHEMA「場合USER」、それ以外の場合は唯一残る、任意のオブジェクトを所有しています「USER」。がUSER少なくとも1つのオブジェクトを所有すると、上記のすべての定義により...はUSERとして呼び出すことができますSCHEMA


ここで指摘しているのは、「SCHEMA」という用語が多面的だということです。これは、一方でデータベースオブジェクトの名前空間です。また、PostgreSQLではなくOracle(および他の人?)では、スキーマの名前を共有するユーザーによって作成されたオブジェクトを正確に含むデータベースオブジェクトの名前空間です。別の観点からは、データベース内のオブジェクトの関係と構造であり、多くの場合、所有権と名前空間の両方を無視します。
アンドリューウルフ

2

違いを理解し始めるために、この命名法はOracleの誤りであると言い始めなければならないと思います。

TRITONというERPがある場合は、データベースにTRITONという名前を付けるか、または私の会社がJENNY EXPORTという名前にすると、データベースにJENNYEXPまたはそのような名前を付けることができ、同じ名前のユーザーは不要だと思います。

Oracleでは、テーブルを作成する前にUSERを作成する必要があり、このTABLESのコレクションはSCHEMAと呼ばれています。

次に、実際のユーザーを作成し、この例のようにTRITONなどのデータベースを操作する適切な権限を付与します。ところで、SQL DEVELOPERを介して接続する場合は、接続に名前を付ける必要があります。

イライラしているように聞こえますが、MS SQL SERVERの命名規則のほうが理にかなっており、SQL SERVERよりも早くOracleで作業したことを付け加えることができます。


1

データベース。

データベースは、実際にはデータが保存されるデータのコレクションです。DBMSソフトウェアがインストールされたコンピューターに接続され、そのメモリコンポーネントのデータを操作する物理メモリコンポーネント。dbmsソフトウェアがインストールされたコンピューターはサーバーまたはデータベースサーバーと呼ばれます。サーバー(コンピューター)とデータベース(メモリーコンポーネント)は異なりますが、ほとんどの場合、状況に応じて同じと呼ばれます。

USERおよびSCHEMA

ユーザーとスキーマの両方の単語は交換可能であるため、ほとんどの人はこれらの単語で混乱します。

ユーザー

ユーザーはデータベース(サーバー)に接続するためのアカウントです。CREATE USER IDENTIFIED BYを使用してユーザーを作成できます。

スキーマ

実際、Oracle Databaseには、データを処理するための論理構造と物理構造が含まれています。データベース(メモリコンポーネント)内のデータを処理するためのスキーマも論理構造。ユーザーが作成すると、Oracleによって自動的に作成されます。そのスキーマに関連付けられたユーザーが作成したすべてのオブジェクトが含まれます。たとえば、名前を持つユーザーを作成した場合santhosh、oracleというスキーマがsanthosh作成され、Oracleはユーザーsanthoshが作成したすべてのオブジェクトをスキーマに保存しsanthoshます。

このCREATE SCHEMAステートメントを使用してスキーマを作成できますが、Oracleはそのスキーマのユーザーを自動的に作成します。

DROP SCHEMA <name> RESTRICTステートメントを使用してスキーマを削除できますが、スキーマに含まれるオブジェクトを削除できないため、スキーマを削除するには空である必要があります。ここで、制限する単語は、そのスキーマをオブジェクトなしで指定することを強制します。

スキーマにオブジェクトを含むユーザーを削除しようとする場合、CASCADEword を指定する必要があります。Oracleではオブジェクトを含むユーザーを削除できないためです。

DROP USER <name> CASCADE

Oracleはスキーマ内のオブジェクトを削除し、ユーザーを自動的に削除します。ビューやプライベートシノニムなどの他のスキーマからこれらのスキーマオブジェクトを参照するオブジェクトは無効な状態になります。


-2

上記のステートメントはOracleの実装に適用されますが、SQL ServerやPostgreSQLを含む他のデータベースは、スキーマを単なる名前空間、つまりオブジェクトをグループ化する方法として使用します。たとえば、ステージングスキーマはステージングデータで使用されるすべてのオブジェクトをグループ化し、アカウンティングスキーマはアカウンティングに関連するすべてのオブジェクトをグループ化できます。


「上記のステートメント」と言うときに何を参照するかはわかりませんが、SQLおよびOracleのスキーマは権限のグループ化です。つまり、オブジェクトのようなグループ化だけでなく、オブジェクトをグループ化する方法であり、スキーマにアクセス許可を付与できるため、アクセス許可の管理が容易になり、スキーマ内の各オブジェクトにアクセス許可を付与する必要がなくなります。
トロンク

-4

User!= Schema、UserおよびSchemaは同じではありませんが、同じ意味で使用されます


2
それらの違いに関する詳細を追加してください。
エリック

-4

使用しているデータベース管理システムの種類に基づいていない概念に従って説明しています。

概念的には、データベース:データの山であり、ほとんどが管理されていない関連データまたは非関連データです。

スキーマ:スキーマとは、管理されていない関連/非関連データを正式に構造化して、スキーマによって提供される正式な定義を理解する管理システムで管理できるようにすることです。スキーマは、基本的に概要を提供するためのスキームです。たとえば、XMLを作成するスキーマを定義するXSDがあります。RDBMS を作成するスキームを基本的に定義するCoddルールに基づく独自のスキーマを定義するRDBMSがあります。

今、あなたがもっと知りたいなら、このリンクを参照してください。

ユーザーは、スキーマで指定された形式言語を使用してデータベースにアクセスします

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.