मैं 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
स्कीमा से तालिकाओं का उपयोग करना चाहिए ... सही है?!