Saya cukup baru di database Oracle. Saya telah menginstal Oracle Database 11g R2
di Oracle Linux 6
. Saya telah berhasil membuat database baru dengan dbca
dan terhubung ke database menggunakan:
$ sqlplus "/ as sysdba"
Saya berhasil membuat tabel dan memasukkan beberapa data dan melakukan beberapa pemilihan:
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
Lalu saya membuat pengguna baru dengan hak istimewa CONNECT:
SQL> CREATE USER teacher1 IDENTIFIED BY pass1;
User created.
SQL> GRANT CONNECT TO teacher1;
Grant succeeded.
Lalu saya membuat peran baru dengan hak objek yang sesuai:
SQL> CREATE ROLE instructor;
Role created.
SQL> GRANT SELECT, UPDATE ON Instructors TO instructor;
Grant succeeded.
Dan memberikan peran kepada pengguna:
SQL> GRANT instructor TO teacher1;
Grant succeeded.
Selanjutnya saya keluar dengan sqlplus exit;
dan terhubung sebagai pengguna baru untuk mengujinya. Saya berhasil masuk ke database dengan:
$ 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>
Tetapi ketika saya mencoba untuk memilih dari tabel dikatakan:
SQL> SELECT * FROM Instructors;
SELECT * FROM Instructors
*
ERROR at line 1:
ORA-00942: table or view does not exist
Apa yang saya lewatkan di sini ?!
sumber
dbadmin
denganDBA
hak istimewa, dan membuat semua tabel dengan pengguna DBA ini. Maka semua pengguna lain harus mengakses tabel dariDBADMIN
skema ... Benar?!