web-dev-qa-db-ja.com

スキーマ名を変更するには?

ユーザーを作成しました:

CREATE USER gds_map
IDENTIFIED BY gds_map;

名前を変更する必要があります。他の方法で更新または検索しようとしましたが、まだ何も見つかりませんでした。

ヒントがあれば嬉しいです。

11
adelak

あなたはできません(少なくともサポートされているか、漠然とした責任のある方法では)。新しいユーザー名で新しいユーザーを作成し、古いユーザーを削除する必要があります。

11
Justin Cave

スキーマの名前を変更する場合は、USER $に事前設定されている必要があります

1。スキーマの名前のIDを取得します

SQL> select user#,NAME from SYS.user$ WHERE NAME='TEST';
USER# NAME
---------- ------------------------------
*93* TEST

2。スキーマの名前を変更します

SQL> UPDATE USER$ SET NAME='NEW_SCHEMA_NAME' WHERE USER#=93;

3。終了したコミット

SQL> COMMIT;

4。システムのSCNを変更する

SQL> ALTER SYSTEM CHECKPOINT;

5。次に、shared_poolをリフレッシュします

SQL> ALTER SYSTEM FLUSH SHARED_POOL;

6。新しいスキーマのパスワードを変更します

SQL> ALTER USER new_schema  IDENTIFIED BY new_pass;
20
mohamed stitane

Oracleスキーマの名前を変更する方法はありません。

試して、

1-新しいスキーマを作成する

2-古いスキーマをエクスポートし、

$exp owner=test2

3-古いスキーマを新しいスキーマにインポートし、

$imp fromuser=test2 touser=newuser_name
5
Dba

これを行う

1- sysとしてログイン

2-これを実行:sys.user $を更新しますset name = 'new_name' where name = 'old_name';

3-次にデータベースを再起動します

2
Firas Nizam

私はこれを頻繁に行う必要があったので、このトピックに関する記事を書いてさえいた

私が使用する回避策は、ループバックdblinkを使用して、ユーザーを別の名前で同じDBに「クローン」することです。

これは非常に高速で、最終的には正常な検査の後で古いスキーマを削除できます。

ここで確認してください: http://www.dbarj.com.br/en/2014/11/rename-schema-Oracle-11g-loopback-dblink/

よろしく、

ロドリゴ・ホルヘ