Je suis relativement nouveau dans la base de données Oracle. J'ai installé Oracle Database 11g R2
sur Oracle Linux 6
. J'ai créé avec succès une nouvelle base de données avec dbca
et connecté à la base de données en utilisant:
$ sqlplus "/ as sysdba"
J'ai réussi à créer une table et à insérer des données et à effectuer des sélections:
SQL> CREATE TABLE Instructors (
tid NUMBER(7) PRIMARY KEY,
fname VARCHAR2(32),
lname VARCHAR2(32),
tel NUMBER(16),
adrs VARCHAR2(128) );
Table created.
SQL> INSERT INTO Instructors (tid, fname, lname, tel, adrs)
VALUES (8431001, 'John', 'Smith', 654321, 'London');
1 row created.
SQL> SELECT count(*) FROM Instructors;
COUNT(*)
----------
1
J'ai ensuite créé un nouvel utilisateur avec le privilège CONNECT:
SQL> CREATE USER teacher1 IDENTIFIED BY pass1;
User created.
SQL> GRANT CONNECT TO teacher1;
Grant succeeded.
J'ai ensuite créé un nouveau rôle avec les privilèges d'objet appropriés:
SQL> CREATE ROLE instructor;
Role created.
SQL> GRANT SELECT, UPDATE ON Instructors TO instructor;
Grant succeeded.
Et accordé le rôle à l'utilisateur:
SQL> GRANT instructor TO teacher1;
Grant succeeded.
Ensuite, j'ai quitté sqlplus avec exit;
et me suis connecté en tant que nouvel utilisateur pour le tester. Je me suis connecté avec succès à la base de données avec:
$ sqlplus teacher1
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 25 03:20:50 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Enter password: *****
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
Mais quand j'essaie de sélectionner dans le tableau, il dit:
SQL> SELECT * FROM Instructors;
SELECT * FROM Instructors
*
ERROR at line 1:
ORA-00942: table or view does not exist
Qu'est-ce qui me manque ici?!
dbadmin
avec desDBA
privilèges, et créer toutes les tables avec cet utilisateur DBA. Ensuite, tous les autres utilisateurs devraient accéder aux tables à partir duDBADMIN
schéma ... Correct?!