新しいアプリケーション用の包含開発スペースを作成する必要があります。これには、テーブルの作成/削除やストアドプロシージャなど、すべての権限で接続するユーザーアカウントが必要です。 最小権限の原則 に続いて、アプリケーションのすべてのデータベース操作がストアドプロシージャにラップされるため、それらのストアドプロシージャ(本番環境でアイテム化され、すべて開発中のアイテム)に対する実行権限のみを持つ別のアプリケーションユーザーアカウントが必要です。 )。
「orcl」という名前のデータベースと呼ばれるデータベースへの接続が利用できるように、Windows Server 2008 R2 EnterpriseにOracle 12cを新しくインストールしました。これで、cmd.exeからsqlplusを起動できます。
sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Wed Jun 8 09:49:03 2016
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL>
MySQLコンソール(mysql -u root -p
)私の各要件の下での同等の指示。
新しいデータベース/スキーマが作成されました
CREATE DATABASE appdb;
dDL用に作成された新しいdboユーザー
CREATE USER 'appdb_owner'@'localhost' IDENTIFIED BY 'c0mpl3xpw0rd';
GRANT ALL PRIVILEGES ON appdb.* TO 'appdb_owner'@'localhost';
アプリケーション実行用の新しいテストユーザー
CREATE USER 'appdb_user'@'localhost' IDENTIFIED BY 'simplerpw0rd';
GRANT EXECUTE ON appdb.* TO 'appdb_user'@'localhost';
私はMySQLに精通していますが、Oracleとsqlplusはまったく新しいものです。私の混乱のいくつかは、DB2の知識があまりないため、データベース、テーブルスペース、スキーマの違いに起因していると思います。 11.1データベースの作成ページ で見たものから、達成しようとしていることが不必要に(新しいインストールのように)複雑に見えるので、代わりに探しているのはデータへの分離されたアクセスを提供するだけの新しいスキーマ。しかし、 10.2スキーマ作成のドキュメント を見ると、次のように書かれています。
このステートメントは実際にはスキーマを作成しません。ユーザーを作成すると、Oracle Databaseによってスキーマが自動的に作成されます(CREATE USERを参照)。このステートメントを使用すると、複数のトランザクションで複数のSQLステートメントを発行しなくても、スキーマにテーブルとビューを挿入して、それらのオブジェクトに対する特権を付与できます。
しかし 10.2ドキュメント からユーザーを作成しようとすると
sqlplus / as sysdba
SQL>CREATE USER appdb_owner IDENTIFIED BY c0mpl3xpw0rd;
次のエラーが表示されます
ORA-65096:無効な共通ユーザーまたはロール名
これにより、私は一般的な名前の区別について 回答 を導きました。これは、私が収集したすべてのスキーマにアクセスできるため、私が望むものではありません。だから、どちらが最初に来るかわからない、鶏と卵のどちらですか?
SYSTEMとして接続する必要があるという別の回答が見つかりましたが、sqlplus / as SYSTEM
は、パスワードの入力を要求することなく、エラーを引き起こしました。
すでにデータベースがあるため、「データベースの作成」は必要ありません。
12.1データベースで作業しているので、10.2ドキュメントを破棄して 12.1ドキュメントセット に移動する必要があります。
ユーザーを作成するときは、それを使用しないでください@localhost
構成。あなたのシンプルなcreate user foo identified by bar
は正しい構文ですが、@ a1ex07が指摘したように、コンテナではなくプラグ可能なデータベースに接続する必要があります。これは、12cから始まるOracleの大幅に新しいアーキテクチャです。 12c Concepts manual (上記の私のリンクを参照)、特に Part VI-Mutlitenant Architecture を使用して少し時間を費やす必要があります。
oracleデータベース12cがインストールされているものとします。それが正しければ、WebサイトGUIでOracleデータベースを管理できます。このOracleデータベースをインストールしたときの5500がデフォルトのポートであるhttps://:5500/emなどのURLを開くことができます。そこでテーブルスペース、ユーザーなどのデータベースを管理できます。
正直に言うと、Windowsにインストールしたことはありません。通常はLinuxにインストールしました。しかし、通常は同じ方法を使用します。
ただし、データベースを作成する場合は、コマンドプロンプトで「dbca」を使用できますが、OracleデータベースのインストールディレクトリにあるPATHを使用する必要があります。そしてdbcaを実行します。おそらくWindowsのdbca.exeで知りません。その後、GUIセットアップが表示されます。
C:\Program Files\$Oracle_HOME\dbca.exe
既存のデータベースでユーザーを作成する場合は、通常、次のスクリプトを使用してエラーが発生します。
sqlplus system/password as sysdba
Sql> alter session set "_Oracle_SCRIPT"=true;
Sql> create user <name> identified by <password>;
Sql> grant dba to <name>;
Sql> connect <name>/<password>;
私が間違っていても大丈夫ですか?