2016-06-06 4 views
0

Ich installierte Oracle 12c auf meinem System mit der Absicht, ein paar einfache Tabellen zu entwickeln. Wie erstelle ich einen einfachen Benutzer, der Tabellen erstellen und bearbeiten kann? Im Moment kann ich nur mit sqlplus "/ as sysdba" auf die dbms zugreifen.Oracle DBMS 12c, So erstellen Sie einen Benutzer, der Tabellen erstellen kann

Ich habe einen Tablespace erstellt. Aber wenn ich versuche, einen Benutzer mit diesem Tablespace als Standard zu erstellen, sagt er mir, dass der Tablespace nicht existiert. Ich starte "Select * from V $ tablespace" und ich sehe meinen Tablespace.

Ich fühle mich hier etwas Grundlegendes vermisst. Ich habe über Oracles Dokumentation gelesen, nichts scheint zu funktionieren. Speziell die Benutzererstellung. Die Beispiele Oracle hat mir Fehler verursacht, beschwert sich über steckbare Datenbanken. Nach dem Lesen sind steckbare Datenbanken ein neues Feature von 12c, daher müssen Sie C## an die vorderen Benutzernamen anhängen. Ich denke, das macht es zu einem "normalen" Benutzer, obwohl ich mir nicht sicher bin, was das wirklich ist. Unabhängig davon, selbst mit "C## test" kann es meinen Tablespace nicht finden. :-(

SQL> create tablespace DBClassSpace; 

SQL> create user C##test 
    2 identified by secret 
    3 default tablespace DBCLASSSPACE 
    4 quota 10M on DBCLASSSPACE 
    5 temporary tablespace TEMP; 
create user C##test 
* 
ERROR at line 1: 
ORA-65048: error encountered when processing the current DDL statement in 
pluggable database PLUGDBCLASS 
ORA-00959: tablespace 'DBCLASSSPACE' does not exist 

SQL> select user from dual; 

USER 
------------------------------ 
SYS 

SQL> select * from V$tablespace; 

     TS# NAME       INC BIG FLA ENC  CON_ID 
---------- ------------------------------ --- --- --- --- ---------- 
     1 SYSAUX       YES NO YES    1 
     0 SYSTEM       YES NO YES    1 
     2 UNDOTBS1      YES NO YES    1 
     4 USERS       YES NO YES    1 
     3 TEMP       NO NO YES    1 
     0 SYSTEM       YES NO YES    2 
     1 SYSAUX       YES NO YES    2 
     2 TEMP       NO NO YES    2 
     0 SYSTEM       YES NO YES    3 
     1 SYSAUX       YES NO YES    3 
     2 TEMP       NO NO YES    3 

     TS# NAME       INC BIG FLA ENC  CON_ID 
---------- ------------------------------ --- --- --- --- ---------- 
     3 USERS       YES NO YES    3 
     5 DBCLASSSPACE     YES NO YES    1 

...

SQL> select tablespace_name from cdb_tablespaces; 

TABLESPACE_NAME 
    ------------------------------ 
    SYSTEM 
    SYSAUX 
    UNDOTBS1 
    TEMP 
    USERS 
    DBCLASSSPACE 
    SYSTEM 
    SYSAUX 
    TEMP 
    USERS 

    10 rows selected. 

    SQL> create user C##test 
     2 identified by secret 
     3 default tablespace DBCLASSSPACE 
     4 quota 10M on DBCLASSSPACE 
     5 temporary tablespace TEMP; 
    create user C##test 
    * 
    ERROR at line 1: 
    ORA-65048: error encountered when processing the current DDL statement in 
    pluggable database PLUGDBCLASS 
    ORA-00959: tablespace 'DBCLASSSPACE' does not exist 
+0

Haben Sie den Tablespace erstellt und fragen Sie diese Ansicht im Root-Container oder in einer Pluggable-DB ab? Sie möchten den Tablespace und dann den Benutzer in der PDB und nicht im Stammverzeichnis erstellen. Folgen Sie den Beispielen aus den 12c-Dokumenten. oder etwas Earler? Es könnte helfen um einen Link zu diesen und die Fehler, die Sie bekommen, zu integrieren. –

+0

Hier ist, was ich folge: https://docs.oracle.com/database/121/SQLRF/statements_8003.htm#SQLRF01503 – horseatingweeds

+0

Ich habe einen Tablespace hinzugefügt. Ich bin in der SYS-Datenbank, die der Root-Container ist, richtig? Ich habe heute zuerst den Begriff "Pluggable DB" gelesen. Wie benutze ich einen Tablespace in Oracle? Ich kann dazu nichts finden. – horseatingweeds

Antwort

0

Sie müssen einige Volumen im Tabellenbereich für eine Benutzertabelle erstellen zuweisen Wenn Sie in cdb $ root sind.

CREATE USER C##U1 
     IDENTIFIED BY password 
     DEFAULT TABLESPACE SYSAUX 
     QUOTA 10M ON SYSAUX 
     TEMPORARY TABLESPACE temp; 
+0

Ich habe im Wesentlichen nur das: Benutzer C## Test identifiziert durch geheime Standardtabellen DBCLASSSPACE Quote 10M onDBCLASSSPACE temporäre Tabellen TEMP erzeugen;. – horseatingweeds

+0

DBCLASSSPACE Raum ist nicht ein gemeinsamer Tabellenbereich, was bedeutet, es nicht in PDB PLUGDBCLASS existiert Bitte abfragen, um die Ansicht CDB_TABLESPACES und weisen die Benutzer eine richtige gemeinsame ta Blespace. SYSAUX ist ein allgemeiner Tabellenbereich. – Dere0405

+0

Hallo Dere. Ich habe das versucht. Ich habe oben meine Befehle hinzugefügt, den zweiten Block. – horseatingweeds

Verwandte Themen