मैं Oracle डेटाबेस के लिए काफी नया हूँ। मैंने स्थापित Oracle Database 11g R2किया है Oracle Linux 6। मैंने सफलतापूर्वक एक नया डेटाबेस बनाया है dbcaऔर डेटाबेस से जुड़ा हुआ है:
$ sqlplus "/ as sysdba"
मैंने सफलतापूर्वक एक तालिका बनाई और कुछ डेटा डाले और कुछ चयन किए:
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
फिर मैंने CONNECT विशेषाधिकार के साथ एक नया उपयोगकर्ता बनाया:
SQL> CREATE USER teacher1 IDENTIFIED BY pass1;
User created.
SQL> GRANT CONNECT TO teacher1;
Grant succeeded.
तब मैंने उचित ऑब्जेक्ट विशेषाधिकारों के साथ एक नई भूमिका बनाई:
SQL> CREATE ROLE instructor;
Role created.
SQL> GRANT SELECT, UPDATE ON Instructors TO instructor;
Grant succeeded.
और उपयोगकर्ता को भूमिका प्रदान की:
SQL> GRANT instructor TO teacher1;
Grant succeeded.
इसके बाद, मैं sqlplus के साथ बाहर निकल गया exit;और इसे परीक्षण करने के लिए नए उपयोगकर्ता के रूप में जुड़ा। मैंने सफलतापूर्वक डेटाबेस में लॉग इन किया:
$ 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>
लेकिन जब मैं तालिका से यह कहने की कोशिश करता हूं:
SQL> SELECT * FROM Instructors;
SELECT * FROM Instructors
*
ERROR at line 1:
ORA-00942: table or view does not exist
मुझे यहाँ क्या याद आ रहा है ?!
dbadminसाथ एक नया उपयोगकर्ता बनाना चाहिएDBA, और इस डीबीए उपयोगकर्ता के साथ सभी तालिकाओं का निर्माण करना चाहिए । तब अन्य सभी उपयोगकर्ताओं कोDBADMINस्कीमा से तालिकाओं का उपयोग करना चाहिए ... सही है?!