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
권한이 DBA 사용자와 모든 테이블을 만들 수 있습니다. 그런 다음 다른 모든 사용자는DBADMIN
스키마 에서 테이블에 액세스해야합니다 .