--■■■ 오라클 접속 및 구동 ■■■--
실행창 호출(윈도우키+r) > [cmd] 입력 → 콘솔창 호출
(명령 프롬프트 상태에서...)
cls - 도스 명령 치면 앞단 내용 삭제됨.
※ 꼭!! 오류발생시 의사표현을 해서 실행되게끔 처리하고 넘어가야 함.
sqlplus - 실행프로그램
-- 접속된 사용자 없이 단순히 SQL 프롬프트만 띄우도록 한 것
(sqlplus 뒤에 슬래시)
C:\>sqlplus/nolog
--==>>
/*
SQL*Plus: Release 11.2.0.2.0 Production on 목 6월 26 09:28:50 2025
Copyright (c) 1982, 2014, Oracle. All rights reserved.
SQL>
*/
--※ [sqlplus]는 SQL을 수행하기 위해 ORACLE에서 제공하는
-- 도구(툴, 유틸리티)이다.
--※ [C:\oraclexe\app\oracle\product\11.2.0\server\bin]경로에
-- 존재하는 [sqlplus.exe]
-- 오라클을 설치하는 과정에서 이미 이 경로가 환경변수 path 에
-- 등록되어 있으므로 해당 경로까지 찾아들어가지 않아도
-- [c:\sqlplus]와 같은 형식으로 명령어 사용이 가능한 상태인 것이다.
SQL> dir
--==>> SP2-0042: unknown command "dir" - rest of line ignored.
SQL> cls
--==>> SP2-0042: unknown command "cls" - rest of line ignored.
SQL> ipconfig
--==>> SP2-0042: unknown command "ipconfig" - rest of line ignored.
--※ 이제는 일반적인 도스 명령어(윈도우 명령어)를 수행할 수 없다.
-- (사전에 약속된 명령 이외에는 수행할 수 있는 상태가 아니다.)
--○ 현재 접속한 사용자 계정을 조회하는 구문
SQL> show user
USER is ""
SQL> exit
C:\>
as - 사장으로써, 얘의 위상으로 접속한다는 의미
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
*/
--○ 현재 접속한 사용자 계정 조회
SQL> show user
USER is "SYS"
--※ 현재 우리는 sys 계정을 통해
-- 오라클 최고 관리자 권한을 가진 상태에서
-- 오라클 서버에 접속한 상태이다.
--○ 오라클 서버 인스턴스 상태 조회(사용가능상태 여부 확인)
-- 전원의 on/off 여부 등 일반적으로 접속의 가능 여부를
-- 확인할 때 사용하는 명령
--==>>
/*
SQL> select status from v$instance;
STATUS
------------------------
OPEN
*/
--> 오라클 서버가 정상적으로 구동중인(startup) 상태임을 의미.
--○ 두번째로... 일반 사용자 계정인 [hr]로 연결을 시도
hr / lion | scott / tiger >> 관리자가 기본적으로 아이디,패스워드를 오픈해놓음..
C:\>sqlplus 계정/패스워드 = SQL> connect 계정/패스워드
오라클 권한의 묶음을 롤 이라고 함.
sqlplus 계정/패스워드 as 운영자롤
sqlplus 계정/패스워드 as 관리자롤
밑에 애들은 관리자기 때문에 롤을 가지고 접속해야만 정상 실행 가능.
SQL> connect hr/lion
/*
ERROR:
ORA-28000: the account is locked
Warning: You are no longer connected to ORACLE.
*/
--> 일반 사용자 계정인 [hr]은 존재하지만 잠겨있는 상태이므로
-- 오라클 서버 접속이 불가능한 상태
--○ 접속된 사용자 계정 확인
SQL> show user
USER is "SYS"
db는 _ 형태로 네이밍이 많이 이루어짐.
※※ db 명령문 작성시 from부터 작성하라고 할 것임.
--○ 오라클 사용자 계정들의 상태 조회(확인)→ sys로 접속한 상태에서 ...
SQL> set linesize 500
SQL> select username, account_status from dba_users;
/*
USERNAME ACCOUNT_STATUS
------------------------------------------------------------ ----------------------------------------------------------------
SYS OPEN
SYSTEM OPEN
ANONYMOUS OPEN
APEX_PUBLIC_USER LOCKED
FLOWS_FILES LOCKED
APEX_040000 LOCKED
OUTLN EXPIRED & LOCKED
DIP EXPIRED & LOCKED
ORACLE_OCM EXPIRED & LOCKED
XS$NULL EXPIRED & LOCKED
MDSYS EXPIRED & LOCKED
USERNAME ACCOUNT_STATUS
------------------------------------------------------------ ----------------------------------------------------------------
CTXSYS EXPIRED & LOCKED
DBSNMP EXPIRED & LOCKED
XDB EXPIRED & LOCKED
APPQOSSYS EXPIRED & LOCKED
HR EXPIRED & LOCKED
16 rows selected.
*/
수정이나 변경 발생- update /구조적인 변경- alter
--○ 계정 잠금 / 해제 → 현재 sys계정을 연결된 상태...
SQL> alter user hr account unlock;
--==>> User altered.
--○ 다시 오라클 사용자 계정들의 상태 확인(조회)
SQL> select username, account_status from dba_users;
==-->>
/*
USERNAME ACCOUNT_STATUS
------------------------------------------------------------ ----------------------------------------------------------------
SYS OPEN
SYSTEM OPEN
ANONYMOUS OPEN
HR EXPIRED
APEX_PUBLIC_USER LOCKED
FLOWS_FILES LOCKED
APEX_040000 LOCKED
OUTLN EXPIRED & LOCKED
DIP EXPIRED & LOCKED
ORACLE_OCM EXPIRED & LOCKED
XS$NULL EXPIRED & LOCKED
USERNAME ACCOUNT_STATUS
------------------------------------------------------------ ----------------------------------------------------------------
MDSYS EXPIRED & LOCKED
CTXSYS EXPIRED & LOCKED
DBSNMP EXPIRED & LOCKED
XDB EXPIRED & LOCKED
APPQOSSYS EXPIRED & LOCKED
16 rows selected.
*/
--> 다시 조회한 결과 hr 계정의 상태는 EXPIRED 이며,
-- 잠금은 해제한 상황이지만 패스워드에 대한 유효기간이 만료된 상황으로
-- 이를 재설정해야 한다.
--○ 계정 정보 변경(패스워드 설정 변경) sys로 접속되어 있는 상태...
SQL> alter user hr identified by lion;
==-->>User altered.
--○ 다시 오라클 사용자 계정들의 상태 확인(조회)
SQL> select username, account_status from dba_users;
--==>>
/*
USERNAME ACCOUNT_STATUS
------------------------------------------------------------ ----------------------------------------------------------------
SYS OPEN
SYSTEM OPEN
ANONYMOUS OPEN
HR OPEN
APEX_PUBLIC_USER LOCKED
FLOWS_FILES LOCKED
APEX_040000 LOCKED
OUTLN EXPIRED & LOCKED
DIP EXPIRED & LOCKED
ORACLE_OCM EXPIRED & LOCKED
XS$NULL EXPIRED & LOCKED
USERNAME ACCOUNT_STATUS
------------------------------------------------------------ ----------------------------------------------------------------
MDSYS EXPIRED & LOCKED
CTXSYS EXPIRED & LOCKED
DBSNMP EXPIRED & LOCKED
XDB EXPIRED & LOCKED
APPQOSSYS EXPIRED & LOCKED
16 rows selected.
*/
--○ 계정 잠금 해제 및 유효기간 만료 상태 해제 후
-- 다시 hr 계정으로 오라클 접속 시도
SQL> conn hr/lion
--==>> Connected.
--○ 접속된 사용자 계정 확인
SQL> show user
USER is "HR"
--○ 현재 오라클 서버의 사용자 계정 상태에 대한 조회
SQL> select username, account_status from dba_users;
--==>>
/*
select username, account_status from dba_users
*
ERROR at line 1:
ORA-00942: table or view does not exist
*/
--> [hr]이라는 일반 사용자 계정을 통해서는
-- [dba_users]에 대한 조회가 불가능한 상황임을 확인
-- 회원이 일반 회원의 정보를 보면 안되므로 오류나는 것임.
오라클의 주연은 테이블! 테팔 서랍광고.. 예시
테이블 스페이스(사물함 전체 구조)안에
각각의 테이블(사물함)이 있고 그 안에 컬럼(파일철)들이 있다.
회원 = 테이블명
이름, 전화번호, 주소 등 = 컬럼명
--○ host 명령어
SQL> dir
--==>> SP2-0042: unknown command "dir" - rest of line ignored.
SQL> cls
--==>> SP2-0042: unknown command "cls" - rest of line ignored.
SQL> ipconfig
--==>> SP2-0042: unknown command "ipconfig" - rest of line ignored.
-- 도스 명령 체계로 전환하거나
-- 라인 단위에서 도스 명령어 입력이 가능하다.
-- 예를 들어 host cls, host dir, host ipconfig 등...
-- 유닉스 계열에서는 [host] 명령 뿐 아니라 [!] 도 사용이 가능하다. host=!
-- 하지만, 윈도우 계열에서는 [host]명령어만 사용이 가능하다.
-- host 상태에서 빠져나갈 때는 [exit] 명령을 입력한다.
C:\>sqlplus
SQL>host
C:\>
C:\>exit
SQL>exit
C:\>exit>> cmd 종료
윈도우 관리자 계정을 오라클에 관리자권한으로 함께 부여된 sist170권한을 제거하는 방법
내컴퓨터-shift+마오-관리-컴퓨터 관리(로컬)-로컬 사용자 및 그룹-그룹-ora_dba에서 sist170 제거
--※ Administrator(윈도우 관리자 계정)가 ORA_DBA 그룹(오라클 관리자 계정 그룹)에 포함되어 있을 경우
-- 취약한 보안 정책으로 인해 실무에서는 정말 특별한 경우가 아니고서는
-- 반드시 제외시키고 사용해야 한다.
-- → ORA_DBA 그룹에서 윈도우 관리자 계정 제거~!!!
-- 운영체제 ver.Pro
-- 컴퓨터 관리> 로컬 사용자 및 그룹
-- 운영체제 ver.Pro 이외
-- 윈도우키+r(실행창 호출) → lusrmgr.msc / control userpasswords2
--※ 제거 이후 sys 의 계정 및 패스워드가 일치하지 않으면
-- 오라클 서버에 접속할 수 없는 상태가 된다.
--○ hr 사용자 계정에 sysdba 권한(롤) 부여하기 → sys 가...
c:\>sqlplus sys/java006$ as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on 목 6월 26 12:16:28 2025
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL> show user
--==>>USER is "SYS"
SQL> grant sysdba to hr;
--==>> Grant succeeded.
--○ 확인 → hr 로 접속 → [as sysdba]로 연결
SQL> conn hr/lion as sysdba
--==>>Connected.
SQL> show user
--==>>USER is "SYS"
--○ sysdba 권한을 부여받기 이전까지는 불가능했던
-- 현재 오라클 서버 사용자 계정의 상태 정보 조회
-- (sysdba 권한을 부여받은 hr 계정인 상태로...)
SQL> select username, account_status from dba_users;
--==>>
/*
USERNAME ACCOUNT_STATUS
------------------------------------------------------------ ----------------------------------------------------------------
SYS OPEN
SYSTEM OPEN
ANONYMOUS OPEN
HR OPEN
APEX_PUBLIC_USER LOCKED
FLOWS_FILES LOCKED
APEX_040000 LOCKED
OUTLN EXPIRED & LOCKED
DIP EXPIRED & LOCKED
ORACLE_OCM EXPIRED & LOCKED
XS$NULL EXPIRED & LOCKED
USERNAME ACCOUNT_STATUS
------------------------------------------------------------ ----------------------------------------------------------------
MDSYS EXPIRED & LOCKED
CTXSYS EXPIRED & LOCKED
DBSNMP EXPIRED & LOCKED
XDB EXPIRED & LOCKED
APPQOSSYS EXPIRED & LOCKED
16 rows selected.
*/
--○ hr 사용자 계정에 부여한 sysdba 권한 박탈 → sys 가...
SQL> revoke sysdba from hr;
--==>> Revoke succeeded.
SQL> disconnect = disconn 같은 명령어
SQL> disconnect
Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
select username, account_status from dba_users; << 표준화 된 정식 구문은 ; 붙여줘야 함.
; 안 붙여도 되는 구문은 sqlplus 유틸리티에서 제공하는 구문임.
--○ 권한 박탈 후 hr 계정을 통해 sysdba 권한으로 오라클 접근 시도
SQL> conn hr/lion as sysdba
--==>>
/*
ERROR:
ORA-01031: insufficient privileges
*/
-- 접속종료
SQL> disconnect
SQL> disconn
--○ 일반 사용자 계정 hr로 다시 연결
SQL> conn hr/lion
--==>>Connected.
SQL> show user
--==>>USER is "HR"
--○ ※ 오라클 구동 / 중지
startup / shutdown [immediate]
immediate -- 빨리 꺼지게 하는 명령
--○ 일반 사용자 계정 hr로 오라클 서버 중지명령 시도
SQL> shutdown
--==>> ORA-01031: insufficient privileges(→ 권한 불충분 에러)
-- 즉, 일반 사용자 계정으로는 오라클 서버의 구동을 중지시킬 수 없다.
SQL> shutdown immediate
--==>> ORA-01031: insufficient privileges
-- 즉, 일반 사용자 계정어로는 오라클 서버의 구동을 중지시킬 수 없다.
SQL> show user
--==>>USER is "SYS"
SQL> shutdown
--==>>
/*
Database closed.
Database dismounted.
ORACLE instance shut down.
*/
--○ 오라클 구동 중지 이후 일반 사용자 hr로 오라클 서버 접속 시도
SQL> conn hr/lion
--==>>
/*
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Process ID: 0
Session ID: 0 Serial number: 0
Warning: You are no longer connected to ORACLE.
*/
SQL> startup
--==>>
/*
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2260048 bytes
Variable Size 616563632 bytes
Database Buffers 444596224 bytes
Redo Buffers 5517312 bytes
Database mounted.
Database opened.
*/
-- ※ 오라클 서버를 구동하는 명령
SQL> startup
-- ※ 오라클 서버를 중지하는 명령
SQL> shutdonw [immediate]
-- ※ 오라클 서버를 구동 및 중지하는 명령은
-- [as sysdba] 또는 [as sysoper]로 연결했을 때만 가능하다. (sysoper = 관리자)
--○ hr 일반 사용자 계정에 [sysoper] 권한 부여하기 → sys 가...
SQL> show user
USER is "SYS"
SQL> grant sysoper to hr;
--==>> Grant succeeded.
--○ 확인 → hr 계정으로 접속 → sysoper 권한으로 ...
SQL> conn hr/lion as sysoper
--==>> Connected.
SQL> show user
--==>> USER is "PUBLIC"
--> 운영자의 권한으로 접속된 상황임을 확인
--○ sysoper 의 권한을 가진 hr 계정으로 오라클 서버 중지 명령 시도
--==>>
/*
SQL> shutdown
Database closed.
Database dismounted.
*/
--○ sysoper 의 권한을 가진 hr 계정으로 오라클 서버 구동 명령 시도
--==>>
SQL> startup
/*
ORACLE instance started.
Database mounted.
Database opened.
*/
--○ sysoper 의 권한을 가진 hr 계정으로
-- 오라클 서버의 사용자 계정 상태 조회
SQL> select username, account_status from dba_user;
--==>>
/*
select username, account_status from dba_user
*
ERROR at line 1:
ORA-00942: table or view does not exist
*/
-- ■■■ 오라클 서버 연결 모드 3가지 방법 ■■■--
-- 1. as sysdba
--> as sysdba 연결하면 오라클 서버의 관리자로 연결되는 것이다.
-- user 명은 sys 로 확인된다.
-- 오라클 서버 관리자로 연결되는 것이기 때문에
-- 오라큰 서버에서 제공하는 모든 기능을 전부 활용할 수 있다.
-- 오라클 서버가 startup 또는 suhtdown 되어도 연결이 가능하다.
-- → 기본적인 연결은 [conn 계정/패스워드 as sysdba] 형태로 연결하게 된다.
-- → 일반적인 연결은 [conn 계정 as sysdba] 형태로 연결하게 된다.
-- 2. as sysoper
--> as sysoper 로 연결하면 오라클 서버의 운영자로 연결되는 것이다.
-- user 명은 PUBLIC 으로 확인된다.
-- 사용자 계정 정보 테이블에 접근하는 것은 불가능하다.
-- 오라클 서버의 구동 및 중지 명령 수행이 가능하다.
-- 오라클 서버가 startup 또는 suhtdown 되어도 연결이 가능하다.
-- → 기본적인 연결은 [conn 계정/패스워드 as sysoper] 형태로 연결하게 된다.
-- → 일반적인 연결은 [conn 계정 as sysoper] 형태로 연결하게 된다.
-- 3. normal
--> 오라클 서버에 존재하는 일반 사용자로 연결되는 것이다.
-- 오라클 서버가 구동중인 상태에서만 연결이 가능하고
-- 오라클 서버가 구동 중지 상태일 경우 연결이 불가능하다.
-- 관리자가 부여해준 권한(또는 롤)을 통해서만 사용이 가능하다.
-- → 기본적인 연결은 [conn 계정/패스워드] 형태로 연결하게 된다.
-- → 일반적인 연결은 [conn 계정] 형태로 연결하게 된다.
Oracle - 기초실습 (0) | 2025.06.30 |
---|---|
Oracle - 기초실습 (0) | 2025.06.27 |
Oracle - TABLESPACE 생성, 계정 및 권한부여 (3) | 2025.06.26 |
Oracle - 오라클 설치, 제거 (1) | 2025.06.26 |
Oracle 기초 - 데이터베이스 (0) | 2025.06.26 |
댓글 영역