Oracle veritabanında oldukça yeniyim. Ben yüklemiş Oracle Database 11g R2
üzerinde Oracle Linux 6
. Başarıyla yeni bir veritabanı oluşturduk dbca
ve kullanarak veritabanına bağladım:
$ sqlplus "/ as sysdba"
Başarıyla bir tablo oluşturdum ve bazı veriler ekledim ve bazı seçimler yaptım:
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
Sonra CONNECT ayrıcalığına sahip yeni bir kullanıcı oluşturdum:
SQL> CREATE USER teacher1 IDENTIFIED BY pass1;
User created.
SQL> GRANT CONNECT TO teacher1;
Grant succeeded.
Sonra uygun nesne ayrıcalıklarına sahip yeni bir rol oluşturdum:
SQL> CREATE ROLE instructor;
Role created.
SQL> GRANT SELECT, UPDATE ON Instructors TO instructor;
Grant succeeded.
Ve kullanıcıya rolünü verdi:
SQL> GRANT instructor TO teacher1;
Grant succeeded.
Sonra sqlplus'tan çıktım exit;
ve test etmek için yeni kullanıcı olarak bağlandım. Veritabanına başarıyla giriş yaptım:
$ 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>
Ama tablodan seçmeye çalıştığımda şöyle diyor:
SQL> SELECT * FROM Instructors;
SELECT * FROM Instructors
*
ERROR at line 1:
ORA-00942: table or view does not exist
Burada eksik olan ne?
dbadmin
ileDBA
ayrıcalıkları ve bu DBA kullanıcı ile bütün tablolar oluşturun. Sonra diğer tüm kullanıcılarDBADMIN
şemadan tablolara erişmelidir ... Doğru mu?!