Saya baru saja menginstal oracle11g, dan skema Scott hilang. Jadi saya mencoba membuatnya sendiri. Saya mendapat skrip sql dari skema "Scott", tetapi ketika saya mencoba menjalankan kueri "buat pengguna Scott diidentifikasi oleh harimau;" ini menampilkan kesalahan berikut:
ORA-65096: pengguna umum atau nama peran tidak valid di oracle.
Pada dasarnya ini tidak mengizinkan saya untuk membuat pengguna "Scott". Mengapa demikian, dan bagaimana cara memperbaiki masalah saya?
11g
, Anda harus tetap aktif12c
.Jawaban:
BAHAYA
Menyetel parameter tak berdokumen seperti ini (seperti yang ditunjukkan oleh garis bawah di depan) hanya boleh dilakukan di bawah arahan Dukungan Oracle. Mengubah parameter tersebut tanpa panduan tersebut dapat membatalkan kontrak dukungan Anda. Jadi lakukan ini dengan resiko Anda sendiri.
Secara khusus, jika Anda mengatur
"_ORACLE_SCRIPT"=true
, beberapa perubahan kamus data akan dibuat dengan kolom ORACLE_MAINTAINED disetel ke 'Y'. Pengguna dan objek tersebut akan salah dikecualikan dari beberapa skrip DBA. Dan mereka mungkin salah disertakan dalam beberapa skrip sistem.Jika Anda setuju dengan risiko di atas, dan tidak ingin membuat pengguna umum dengan cara yang benar, gunakan jawaban di bawah ini.
Sebelum membuat pengguna, jalankan:
Saya menemukan jawabannya di sini
sumber
Tidak, Anda telah menginstal Oracle 12c . Kesalahan itu hanya bisa aktif
12c
, dan tidak bisa aktif11g
.Selalu periksa versi database Anda hingga 4 tempat desimal:
Database container multitenant Oracle 12c memiliki:
Anda harus membuat database sebagai database kontainer . Saat Anda mencoba untuk membuat pengguna dalam wadah, yaitu CDB $ ROOT , namun Anda harus membuat pengguna dalam database PLUGGABLE .
Anda tidak seharusnya membuat objek yang berhubungan dengan aplikasi di dalam kontainer, kontainer tersebut menyimpan metadata untuk database yang dapat dicolokkan. Anda harus menggunakan database pluggable untuk operasi database umum Anda. Jika tidak, jangan buat sebagai container, dan jangan gunakan multi-tenancy . Namun, 12cR2 dan seterusnya Anda tidak dapat membuat database non-container.
Dan kemungkinan besar, skema sampel mungkin telah diinstal, Anda hanya perlu membukanya di database yang dapat dicolokkan.
Misalnya, jika Anda membuat database pluggable sebagai
pdborcl
:Untuk menampilkan PDB dan terhubung ke database yang dapat dicolokkan dari wadah root:
Saya sarankan baca, Langkah Wajib Pasca Instalasi Oracle 12c
Catatan : Jawaban yang menyarankan untuk menggunakan
_ORACLE_SCRIPT
parameter tersembunyi ke true berbahaya dalam sistem produksi dan mungkin juga membatalkan kontrak dukungan Anda. Hati-hati, tanpa berkonsultasi dengan dukungan Oracle JANGAN gunakan parameter tersembunyi .sumber
Di Oracle 12c dan yang lebih baru, kami memiliki dua jenis database:
Jika Anda ingin membuat pengguna, Anda memiliki dua kemungkinan:
Anda dapat membuat "pengguna kontainer" alias "pengguna umum".
Pengguna umum termasuk dalam CBD serta PDB saat ini dan masa depan. Ini berarti mereka dapat melakukan operasi di DB Kontainer atau DB yang Dapat Dicolok sesuai dengan hak yang ditetapkan.
create user c##username identified by password;
Anda dapat membuat "pengguna yang dapat dicolokkan" alias "pengguna lokal".
Pengguna lokal hanya dimiliki oleh satu PDB. Para pengguna ini mungkin diberi hak administratif, tetapi hanya untuk PDB yang ada di dalamnya. Untuk itu, Anda harus terhubung ke pluggable datable seperti itu:
alter session set container = nameofyourpluggabledatabase;
dan di sana, Anda dapat membuat pengguna seperti biasanya:
create user username identified by password;
Jangan lupa untuk menentukan tablespace yang akan digunakan, ini dapat berguna selama impor / ekspor DB Anda. Lihat ini untuk informasi lebih lanjut tentangnya https://docs.oracle.com/database/121/SQLRF/statements_8003.htm#SQLRF01503
sumber
ubah set sesi "_ORACLE_SCRIPT" = true;
buat pengguna sec_admin yang diidentifikasi oleh "Chutinhbk123 @!";
sumber
Buat ketergantungan pengguna pada alat penghubung database
sumber
Mungkin, alternatif yang lebih aman
"_ORACLE_SCRIPT"=true
adalah mengubah"_common_user_prefix"
dariC##
menjadi string kosong. Jika nol - nama apa pun dapat digunakan untuk pengguna umum. Ditemukan disana .Selama mengubah nilai itu, Anda mungkin menghadapi masalah lain - ORA-02095 - parameter tidak dapat diubah, yang dapat diperbaiki dengan beberapa cara, berdasarkan konfigurasi Anda ( sumber ).
Jadi bagi saya bekerja itu:
sumber