오라클 LIKE 문에서 "%", "_" 문자의 역할은 일반적인 정규표현식에서의 "*", "?" 동일하다.

만약 LIKE 문에서 "%", "_" 문자가 들어간 문자열을 검색할 어떻게 해야할까?

아래 예문과 같이 수행하면 된다

SELECT * FROM TABLE1 A

WHERE A.COL1 LIKE '#%%TXT' ESCAPE '#';

위와 같이 조회를 하게 되면 "%TXT" 끝나는 모든 내용이 조회된다.

, ESCAPE 예약어를 이용하여 특수문자를 일반문자로 변경시킬 있다.

오라클 DBMS 를 이용 할 때,
drop table 등으로 발생한 휴지통 데이터를 정리 하는 기능..

SHOW RECYCLEBIN;                                                : 휴지통 내용보기
FLASHBACK TABLE <테이블명> TO BEFORE DROP;    : 테이블 복원하기
PURGE RECYCLEBIN;                                              : 휴지통 비우기
DROP TABLE RECYCLETEST PURGE;                        : 테이블 완전 삭제
PURGE TABLE <테이블명>;                                       : 휴지통에서 특정 테이블 삭제
PURGE INDEX <인덱스명>;                                        : 휴지통에서 인덱스 완전삭제
PURGE TABLESPACE USERS;                                   : 휴지통에서 특정 테이블의 전체 객체 삭제
PURGE TABLESPACE USERS USER SCOTT;               : 휴지통에서 특정 테이블의 객체 삭제
PURGE DBA_RECYCLEBIN;                                       : DBA권한으로 테이블 전체 삭제

SQL Server 인증 모드 변경하기

SQL Server의 인증 모드는 두 가지 방법이 있다.

  • Windows 인증
  • SQL Server 인증

1. Windows 인증

Windows 인증은 SQL Server에 접속하기 우해서 별도의 사용자 및 비밀번호를 입력하지 않고 Windows에 접속한 사용자로 데이터베이스에 연결해 사용하는 방법이다.

마이크로소프트에서는 SQL Server 인증을 사용하는 것보다 Windows 인증모드를 사용하기를 권장한다. 이유는 Windows 인증은 Windows 서버의 보안체계를 그대로 사용하기 때문에 보안에 더 강력하기 때문이다.

2. SQL Server 인증

SQL Server 인증은 Windows 서버의 보안과 별 관련 없이 SQL Server에 계정만 잇다면 접속을 할 수 있어서 상대적으로 보안이 취약하다. 그럼에도 SQL Server 인증이 사용되는 이유는 외부 컴퓨터에서 SQL Server를 사용하기에는 SQL Server 인증이 더 편리하기 때문이다.

SQL Server의 최상위 관리자는 'sa'(System Administrator)라는 관리자 계정이다. SQL Server 2005 이전 버전에서는 이 관리자가 필수적으로 사용되었으나, SQL Server 2005부터는 더 이상 필요가 없다. 그러나 호환성을 위해 남겨 놓았다.

[참고: 뇌를 자극하는 SQL Server 2005]

SQL Server 인증 모드 변경하기

1. SQL Server에 접속한 다음 [개체 탐색기]에서 마우스를 올리고 우클릭하여 [속성]을 들어간다.

2. 서버 속성에서 '서버 인증' 방식으로 SQL Server 및 Windows 인증 모드로 변경한 후 확인을 클릭

3.  SQL 서버의 보안에서 로그인을 선택한 후 SQL Server의 관리자인 'sa'계정을 선택한 후 마우스 우클릭하여 '속성'에 들어간다.

4. 로그인 속성에서 일반 항목에 sa계정에 대한 암호를 지정한다.

5. 상태 설정에서 데이터베이스 엔진 연결 권한을 '허용'으로 로그인 권한을 '사용'으로 변경한다.

만약에 로그인 허용이 거부되어 있는 상태라면 SQL 서버에 접속할 때 다음과 같은 오류 메시지를 출력한다.

사용자'sa'이(가) 로그인하지 못했습니다. 원인: 계정을 사용할 수 없습니다.(Microsoft SQL Server, 오류: 18470)


MySQL에서 테이블을 만들거나 데이터를 입력할때
MySQL Command Line Client에서 일일이 입력해도 되지만 좀 번거롭다.
MySQL Command Line Client에서 붙여넣기를 지원하기는 하지만
붙여넣기만으로는 좀 부족하다고 생각하는 사람들은 source 명령어를 이용하면 된다.

◆ source 명령어
외부 파일의 SQL문을 실행시킨다.

mysql> source <파일명>;

인터넷에서 찾아보니까 위에 같이만 씌여있어서 좀 해맸다.
저런식으로 씌여있으면 파일명을 쓸 때 일반적으로 아래와 같이 쓴다.

mysql> source d:\mysql\test.sql;

이렇게 쓰면 에러가 뜬다.
source명령어의 파일명을 쓸때는 반드시 "\"대신에 "/"를 써주어야된다.

mysql> source d:/mysql/test.sql;
Database changed
Query OK, 0 rows affected, 1 warning (0.06 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.02 sec)
mysql> select * from tlog;
+-------+---------------------+----------+-------------------+
| LogID | LogTime             | fSec     | fLog              |
+-------+---------------------+----------+-------------------+
|     1 | 2005-05-15 13:28:48 | test     | I am testing now. |
|     2 | 2007-05-17 11:22:43 | practice | I am a boy.       |
|     3 | 2007-05-17 18:28:48 | test     | I am a bad boy.   |
+-------+---------------------+----------+-------------------+
3 rows in set (0.00 sec)

Windows 에서 설치하기
설치파일을 다운로드 받아서 실행하면 됩니다.

Windows 에서 시작하고 끄기
시작하기
mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini" MySQL

shutdown
mysqladmin -u root -p shutdown

제어판 > 관리도구 > 서비스 > MySQL 에서 껐다 켰다 할 수 있습니다.

Windows 에서 설정 수정하기
위 defaults-file 항목에 지정된 경로에 있는 my.ini 를 수정하면 됩니다.


본격적으로 MySQL 을 사용하기 전에 약간의 보안성을 높이기 위한 설정입니다.
1. root 로 로그인
설치 시 root 암호 설정을 안 한 경우: mysql -u root
설치 시 root 암호 설정 한 경우: mysql -u root -p

2. root 가 아닌 유저는 모두 제거
mysql> delete from mysql.user where not (host="localhost" and user ="root");
mysql> FLUSH PRIVILEGES;

3. root 암호를 설정
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('사용하려는 암호');
mysql> FLUSH PRIVILEGES;
mysql> exit
설치 시 root 암호 설정 한 경우에는 pass

4. 약간의 보안 강화를 위해 누구나 디폴트로 쓰는 root 라는 이름을 다른 이름으로 바꾸기
mysql -u root -p
mysql> update mysql.user set user="myadminname" where user="root";
mysql> FLUSH PRIVILEGES;
mysql> exit

5. anonymous 접근을 다 제거
mysql -u myadminname -p
mysql> DELETE FROM mysql.user WHERE User = '';
mysql> FLUSH PRIVILEGES;

모든 데이타베이스에 admin 권한이 있는 다른 유저를 추가하기
mysql> GRANT ALL PRIVILEGES ON *.* TO '유저이름'@'localhost' IDENTIFIED BY '암호

' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

특정 데이타베이스에 admin 권한이 있는 다른 유저를 추가하기
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON 특정DB이름.* TO '유저이름'@'localhost' IDENTIFIED BY '암호';

Oracle Database 10g Express Edition Database 홈페이지 포트 변경하기

 

1. exec dbms_xdb.sethttpport(8083);

 

C:\Documents and Settings\user>sqlplus

SQL*Plus: Release 10.2.0.1.0 - Production on 목 2월 21 10:04:47 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

사용자명 입력: system
암호 입력:

다음에 접속됨:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

SQL> exec dbms_xdb.sethttpport(8083);

PL/SQL 처리가 정상적으로 완료되었습니다.

SQL>

 

2. http://127.0.0.1:8083/apex

 

C:\oraclexe\app\oracle\product\10.2.0\server\Database_homepage

 

URL : http://127.0.0.1:8080/apex

 

URL : http://127.0.0.1:8083/apex


Oracle 10g Database Express Edition(줄여서 XE) 버전을 설치하면 여러가지 제약들이 존재한다. 1G 메모리와 1G 의 저장공간만을 제공을 한다.
그래도 Oracle Database에 비해서 가볍고, 라이센스 등에 상관없이 교육용으로 무료로 설치하고 배포할 수 있다는 장점을 가지고 있다. 다만 아쉬운 점이 있다면, 설치가 되었을 때 많은 오라클 DB 교재들에서 사용하는 scott 계정이 아예 설치가 되어 있지 않다는 것이다. Oracle 10g Database의 경우에는 활성화가 되어있지 않을 뿐, scott 계정도 기본적으로 제공을 한다.

그래서 인터넷을 뒤적거리면서 oracle XE에서 scott 계정을 생성하는 방법을 찾아보았다.
방법은 의외로 간단했다. ^^;; Oracle XE에서 제공하는 scott.sql 을 SQL command line 내에서 실행시켜주면 되는 것이다.

먼저 RUN SQL command line 을 실행시킨다.
conn /as sysdba
@C:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\scott.sql
conn scott/tiger
desc emp;
select * from emp;
이 과정을 진행을 해보면, 손쉽게 Oracle XE 에서도 scott 계정의 생성이 가능하다.

오라클 서버의 시작과 종료

 

♧♣♧♣♧♣♧♣♧♣♧    시    작    ♣♧♣♧♣♧♣♧♣♧♣♧♣

 

C:\Documents and Settings>sqlplus

 

SQL*Plus: Release 10.2.0.1.0 - Production on 일 8월 27 23:40:41 2006

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

사용자명 입력: scott/tiger

ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist

 

 

C:\Documents and Settings>sqlplus/nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 일 8월 27 23:43:31 2006

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

SQL> conn sys as sysdba
암호 입력:
휴지 인스턴스에 접속되었습니다.


SQL> startup
ORACLE 인스턴스가 시작되었습니다.

Total System Global Area  167772160 bytes
Fixed Size                  1247900 bytes
Variable Size              83887460 bytes
Database Buffers           79691776 bytes
Redo Buffers                2945024 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.
SQL> conn scott/tiger
연결되었습니다.
SQL>

 

 

 

♧♣♧♣♧♣♧♣♧♣♧    종    료    ♣♧♣♧♣♧♣♧♣♧♣♧♣

 

SQL> conn sys / change_on_install as sysdba;(sys 계정으로 접근)

 

 

shutdown normal : (사용자 중심) 모든 사용자가 종료하고 나갈 때까지 기다리고 db종료

                                               일반적으로 shutdown 명령어의 default는 normal이다

 

shutdown immediate(관리자 중심) 

                                  -----> rollback (다시 ---- -.- T.T) DBA 긴급하고 중요한 일

 

shutdown transactional

 

shutdown abort : 비상 수단 ---- > 오라클 쪽에서는 책임 안 짐 가급적 안 쓰는 것이 좋다
                                                (서버에서는 쓰지 말자)

 

SQL> startup force   ------------> 언제나 db를 사용할 수 있을 정도까지 올려준다
                                                   ORACLE 인스턴스가 시작되었습니다.

 

 

Ex)

 

SQL> shutdow abort
ORACLE 인스턴스가 종료되었습니다.

SQL> conn scott/tiger
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist


경고: 이제는 ORACLE에 연결되어 있지 않습니다.
SQL> desc tab;
SP2-0640: 연결되지 않았습니다.
SP2-0641: "DESCRIBE"(이)가 서버로 연결하는데 필요합

SQL> conn sys / change_on_install as sysdba;
휴지 인스턴스에 접속되었습니다.

SQL> startup;
ORACLE 인스턴스가 시작되었습니다.

 

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.


Oracle 10g에 대한 함수에 대한 도움말 파일입니다.

사용자 계정의 잠금

  명시적으로 사용자의 계정을 잠글 경우 사용 할 수 있다.

 
-- SYSDBA 권한으로 접속 한다
C:\> SQLPLUS / AS SYSDBA


-- scott유저의 계정을 잠금
-- 계정 잠금을 해제 할 때까지 scott유저로 접속 할 수 없다. 
SQL> ALTER USER scott ACCOUNT LOCK;


-- scott유저에 접속 할 수가 없습니다.
SQL> CONN scott/tiger
     ERROR: ORA-28000: 계정이 잠금되었습니다  
    

사용자 계정의 잠금 해제

 
-- SYSDBA 권한으로 접속 한다
C:\> SQLPLUS / AS SYSDBA


-- scott유저의 계정 잠금 해제
SQL> ALTER USER scott ACCOUNT UNLOCK;


-- SCOTT유저에 다시 접속 할 수 있습니다. 
SQL> CONN scott/tiger
    

비밀 번호의 만료

 
-- SYSDBA 권한으로 접속 한다
C:\> SQLPLUS / AS SYSDBA


-- scott유저의 암호를 만료 시킨다. 
SQL> ALTER USER scott PASSWORD EXPIRE;


-- scott유저는 더이상 접속을 할 수 없다. 
SQL> CONN scott/tiger
     scott에 대한 암호를 변경합니다
      새로운 암호: *****
      새로운 암호를 다시입력합니다: *****
      ERROR:
      ORA-00988: 암호가 틀립니다


-- SYS USER가 암호를 재 설정 해야 한다. 
SQL> CONN / AS SYSDBA
  

-- 암호 생성
SQL> ALTER USER scott IDENTIFIED BY tiger;


-- 접속 가능
SQL> CONN scott/tiger;
    

+ Recent posts