Oracle 지식 정리 노트

오 라 클 지식 에 관 한 학습 노트 를 정리 하 는 것 이 도움 이 되 기 를 바 랍 니 다.
1.SQL Server 와 Oracle 을 간단하게 비교
  제 가 그린 그림 을 먼저 보 여 드 리 겠 습 니 다.

  Sql Server 를 설치 한 후에 우 리 는 데이터베이스 엔진 을 열 고 연결 한 후에 많은 데이터 베 이 스 를 볼 수 있 습 니 다.시스템 데이터 베이스 도 있 고 사용자 데이터 베이스 도 있 습 니 다.한편,Oracle 이 설 치 된 후에 하나의 데이터 베 이 스 는 하나의 서비스 에 대응 합 니 다.저 희 는 사용 하기 전에 컴퓨터 서비스 에서 해당 하 는 서 비 스 를 시작 해 야 합 니 다.그림 에서 보 듯 이 서비스 가 열 리 고 사용자 가 로그 인 한 후에 보 이 는 것 은 데이터 베이스 이 며 하나의 데이터 베이스 에 표,보기,저장 과정 등 데이터 대상 이 있 을 수 있 습 니 다.하나의 Oracle 데이터 베 이 스 는 여러 명의 사용자 가 있 을 수 있 고 사용자 의 권한 이 다 르 며 데이터 베이스 에 들 어가 보 이 는 데이터 대상 도 다르다.
2.Oracle 의 기본 개념 과 관계
  나 는 Oracle 에서 반드시 알 아야 할 개념 5 가 지 를 정리 했다.즉,사용자,권한,역할,방안 과 데이터 대상 이다.
사용자 의 개념 은 모두 가 군말 할 필요 가 없다 는 것 을 안다.권한 은 어떤 일 을 할 수 있 는 지 없 는 지 를 증명 하 는 것 이다.캐릭터 는 어떤 권한 의 집합체 로 볼 수 있다.Oracle 에 서 는 권한 이 여러 가지 가 있 습 니 다.사용자 에 게 권한 을 부여 하 는 것 이 번 거 로 울 수 있 기 때문에 일부 권한 을 하나의 역할 에 배분 하면 사용자 에 게 이 역할 을 부여 하면 권한 을 부여 하 는 번 거 로 움 을 해결 합 니 다.방안 은 여기 서 사용자 와 대응 된다.한 사용자,Oracle 은 기본적으로 하나의 방안 을 제공 합 니 다.이 방안 에는 데이터 대상 이 저 장 됩 니 다.그러면 데이터 대상 은 또 무엇 입 니까?생각해 보면 데이터 대상 은 표,보기,저장 과정 등의 총칭 이다.그들 사이 의 관 계 를 나 는 그림 으로 설명 한다.
  
 시스템 권한 은 사용자 가 데이터베이스 에 대한 관련 권한 입 니 다.예 를 들 어 로그 인 입 니 다.대상 권한 은 사용자 가 다른 사용자 의 데이터 대상 에 대한 조작 권한 입 니 다.예 를 들 어 다른 방안 의 표를 업데이트 합 니 다.이 그림 을 보고 궁금 한 점 이 있 는 지 모 르 겠 습 니 다.Oracle 의 권한 은 어떤 것 이 있 습 니까?캐릭터 가 뭐 가 있 죠?우 리 는 이 데이터 베 이 스 를 어떻게 조작 합 니까?뒤에 있 는 블 로그 에서 이런 것들 을 소개 할 겁 니 다.
3.Oracle 의 관리 도구 pl/sql Developer 
   pl/sql developer 는 pl/sql 블록 을 개발 하 는 통합 개발 환경 으로 Oacle 의 부속품 이 아 닌 독립 된 제품 입 니 다.pl/sql 은 procedural language/sql 로 Oracle 이 표준 sql 언어 에서 의 확장 입 니 다.pl/sql 은 sql 언어 를 삽입 할 수 있 을 뿐만 아니 라 변수 와 상수 도 정의 할 수 있 으 며,각종 오 류 를 예외 적 으로 처리 하여 기능 을 더욱 강하 게 할 수 있 습 니 다.
pl/sql 블록 은 세 부분 으로 구성 되 어 있 습 니 다.정의 부분,실행 부분,예외 처리 부분 입 니 다.정의 부분 과 예외 부분 을 선택 할 수 있 습 니 다.

Declear 
/*     -----    ,  ,  ,  ,      */ 
Begin 
/*    -----    pl/sql   sql  */ 
Exception 
/*      -----         */ 
End; 
        : 
Begin 
dbms_output.put_line('hello,world'); 
End; 
왜 pl/sql 중국어 난 장 판 문제 가 발생 했 습 니까?
   전 제 는 이 컴퓨터 에 Oracle 이 설치 되 어 있 지 않 고 pl/sql 로 Oracle 데이터 베 이 스 를 원 격 으로 방문 하 는 것 입 니 다.이 기 계 는 Oracle 클 라 이언 트 와 pl/sql 을 설치 하 였 습 니 다.
   서버 에 있 는 Oracle 에는 UTF-8 이나 간 체 중국어 같은 문자 설정 이 있 습 니 다.수 동 으로 수정 되 지 않 으 면 기본 값 이 있 습 니 다.이 컴퓨터 에서 Oracle 클 라 이언 트 와 pl/sql 도 문자 설정 이 필요 합 니 다.서버 와 클 라 이언 트 의 문자 인 코딩 이 일치 하지 않 으 면 중국어 오류 가 발생 합 니 다.그래서 우리 가 해 야 할 일 은 그들 이 일치 하도록 수정 하 는 것 이다.지금 보기 에는 이렇게 간단 하 다.그때 어떻게 그렇게 고민 할 수 있 었 을 까!)
   중국어 난 장 판 문 제 를 어떻게 해결 합 니까?
   우선 서버 쪽 의 Oracle 이 어떤 문자 인 코딩 인지 알 아야 합 니 다.pl/sql 을 열 고 명령 창 에 입력 하 십시오.  select userenv('language') from dual;   먼저 볼 거 야.그림:

그리고 할 일 은 이 컴퓨터 의 문 자 를 SIMPLIFIED CHINESE 로 설정 하 는 것 입 니 다.CHINA.ZHS16GBK。방법 은 환경 변 수 를 설정 하 는 것 이다.STEP:내 컴퓨터-->우 클릭-->속성-->환경 변수-->시스템 변수-->nlslang 을 SIMPLIFIED CHINESE 로 수정CHINA.ZHS16GBK,그리고 pl/sql 을 다시 시작 해 야 합 니 다.인터넷 에 서 는 이 정도 면 문 제 를 해결 할 수 있다 는 자료 가 많다.하지만 내 난 장 판 문 제 는 해결 되 지 않 는 다.만약 당신 의 문제 도 해결 되 지 않 는 다 면 이렇게 하 세 요:당신 의 레 지 스 트 를 열 어 이런 목록 을 찾 으 세 요:찾 습 니 다:HKEYLOCAL_MACHINE->SOFTWARE->ORACLE 중

오른쪽 NLS 설정LANG,그것 의 값 도 SIMPLIFIED CHINESE 로 설정 합 니 다.CHINA.ZHS16GBK。pl/sql 을 다시 시작 하면 추 가 된 기록 을 삭제 하고 재 테스트 를 다시 추가 합 니 다.이전에 추 가 된 기록 은 어 지 러 운 코드 로 기록 되 어 효과 가 보이 지 않 을 가능성 이 높다.
4.권한 과 역할 을 어떻게 분배 하 는가
1).권한 이란 무엇 인가,캐릭터 란 무엇 인가?
   권한 은 시스템 권한 과 대상 권한 으로 나 뉜 다.시스템 권한 은 특정 유형의 sql 명령 을 집행 할 권 리 를 가리킨다.예 를 들 어 사용 자 는 create table 의 권한 을 가지 고 그 방안 에서 표를 만 들 수 있 습 니 다.create any table 이 있 으 면 모든 방안 에서 표를 만 들 수 있 습 니 다.대상 권한 이란 다른 방안 에 접근 할 수 있 는 권 리 를 말 합 니 다.사용 자 는 자신의 방안 의 대상 에 직접 접근 할 수 있 지만 다른 방안 의 대상 에 접근 하려 면 대상 의 권한 이 있어 야 합 니 다.예 를 들 어 Scott 사용자 가 Jane.emp 표(Jane 방안,emp 표)를 방문 하려 면 Jane.emp 표 에 대상 권한 을 가 져 야 합 니 다.
  캐릭터 는 관련 권한 의 명령 집합 으로 캐릭터 를 사용 하 는 목적 은 주로 권한 의 관 리 를 간소화 하기 위 한 것 이다.
2).자주 사용 하 는 권한 과 역할 분류
  여기 서 우 리 는 가장 자주 사용 하 는 것 만 간단하게 소개 하면 됩 니 다.도움 문 서 를 찾 아 보 려 면 검색 어 를 통 해 얻 을 수 있 습 니 다.
  a.시스템 권한:데이터베이스 연결(database link),세 션(session),사용자(User),표 공간(tablespace),역할(role),데이터 대상(표,보기,저장 과정)등 작업 에 대한 create,drop,alter.
  b.대상 권한:insert--추가,delete-삭제(데이터),Alter-수정(표 구조 수정),Update-수정(데이터 업데이트),Select-조회.4 가지 유형 을 추가 삭제 하고 고 치 는 것 이다.
  c.역할 은 미리 정 의 된 것 과 사용자 정의 두 가지 로 나 뉜 다.사전 정 의 는 Oracle 이 제공 하 는 역할 을 말 합 니 다.주로 connect,resource,dba 를 포함 합 니 다.
    dba 캐릭터 는 모든 시스템 권한 을 가지 고 있 습 니 다.기본 적 인 dba 캐릭터 가 있 는 사용 자 는 sys 와 system 입 니 다.이 두 사용 자 는 모든 시스템 권한 을 다른 사용자 에 게 부여 할 수 있다.주의해 야 할 것 은 dba 캐릭터 가 데이터 베 이 스 를 닫 을 권리 가 없습니다.connect 캐릭터 는 일반 개발 자가 필요 로 하 는 대부분의 권한 을 가지 고 있 습 니 다.대부분의 경우 사용자 에 게 connect 와 resource 역할 을 권한 을 부여 하면 됩 니 다.그러면 connect 와 resource 역할 은 어떤 권한 이 있 나 요?여기 서 일일이 열거 할 필요 가 없다.우 리 는 조 회 를 통 해 얻 을 수 있다.그럼 어떻게 조회 하나 요?
3).조회
어떻게 Oracle 에 몇 가지 역할 이 있 는 지 조회 합 니까?select * from dba_roles;
어떻게 Oracle 에 몇 가지 시스템 권한 과 대상 권한 이 있 는 지 조회 합 니까?select * from system_privilege_map order by name; select  distinct privilege  from dba_tab_privs;
어떤 사용자 가 어떤 역할 을 가지 고 있 는 지 어떻게 봅 니까?  select * from dba_role_privs where grantee='사용자 이름';
어떻게 한 캐릭터 가 어떤 시스템 권한 과 대상 권한 을 포함 하 는 지 봅 니까?select * from dba_sys_privs where grantee='캐릭터 명';select * from dba_tab_privs where grantee='캐릭터 명';
4).수여 및 회수
   이 부분의 지식 은 학습 과정 에서 하나의 규칙 에 따라 온 것 으로 배 운 후에 매우 난잡 하 다 고 느낀다.나 는 이곳 의 물건 을 정상 적 인 조작 과정 에 따라 조작 선 을 만 들 었 다.지식 이 비교적 뚜렷 해진 것 같다.
   a.지금 나 는 Oracle 을 사용 하려 면 반드시 사용자 가 있어 야 한다.Oracle 은 기본적으로 두 사용자 sys 와 system 을 만 듭 니 다.저 희 는 이 두 사용자 로 로그 인하 여 자신의 사용 자 를 만 들 수 있 습 니 다.예 를 들 어 create user Ken identified by ken.지금 은 Ken 을 사용 하여 로그 인하 면 잘못된 정 보 를 제공 합 니 다.왜?Ken 사용자 가 로그 인 할 수 있 는 권한 이 없 기 때 문 입 니 다.지금 켄 에 게 권한 을 부여 해 야 합 니 다:grant create session  to Ken  with admin option.이렇게 하면 Ken 사용자 가 로그 인 하면 됩 니 다.그렇다면 with admin option 은 어떤 역할 을 할 수 있 습 니까?이 는 권한 을 수 여 받 은 사용자 나 캐릭터 가 이 시스템 의 권한 을 다른 사용자 나 캐릭터 에 게 줄 수 있다 는 것 을 의미한다.
    회수 시스템 권한 조작:위의 예 를 사용 합 니 다:회수 로그 인 권한:revoke  create session  from Ken;  시스템 권한 의 회 수 는 등급 이 연 결 된 것 이 아니다.예 를 들 어 Ken 은 로그 인 권한 을 Jane 에 게 부여 합 니 다.그러면 Ken 의 권한 을 회수 한 후에 도 Jane 은 로그 인 할 수 있 습 니 다.
    b.대상 권한 에 대해 예 를 들 어 제 방안 에 표 emp 이 있다 면 지금 은 Ken 사용자 에 게 제 시 계 를 조작 할 수 있 는 권한 을 주 고 싶 습 니 다.그럼 나 어 떡 해?첫 번 째 방법 은 dba 사용자 로 제 표 emp 를 조작 할 수 있 는 권한 을 Ken 에 게 주 는 것 입 니 다.dba 사용 자 는 모든 대상 의 대상 권한 을 다른 사용자 에 게 부여 할 수 있 습 니 다.두 번 째 방법 은 내 가 하 는 것 이다.  어떻게 합 니까?grant selection on emp to Ken with grant option.여 기 는 with grant option 을 사 용 했 습 니 다.이것 은 이러한 역할 을 할 수 있 습 니 다.Ken 사용 자 는 제 표 emp 를 조작 할 수 있 는 권한 을 다른 사용자 에 게 부여 할 수 있 습 니 다.여기 조심 하 세 요.with admin option 과 달리 with grant option 은 사용자 에 게 만 부여 할 수 있 고 역할 을 부여 할 수 없습니다.
    회수 대상 권한 조작:revoke select on emp from Ken;대상 권한 의 회 수 는 등급 이 연 결 된 것 이다.예 를 들 어 Ken 은 emp 표 조회 권한 을 Jane 에 게 부여 합 니 다.그러면 Ken 의 권한 을 회수 한 후에 Jane 도 emp 표 에 대해 조회 할 수 없습니다.
    c.캐릭터 권한 수 여 는 두 단계 가 필요 합 니 다.1.캐릭터 권한 수여 2.캐릭터 를 특정한 사용자 에 게 부여 합 니 다.현재 우 리 는 로그 인 권한 을 캐릭터 에 게 줄 것 입 니 다:grant  create session  캐릭터 명 으로 가기;그리고 이 캐릭터 를 사용자 에 게 Ken:grant 캐릭터 이름 to Ken.캐릭터 를 삭제 하고 drop role 캐릭터 이름 을 사용 합 니 다.
요약:이 블 로 그 는 Oracle 의 기본 체 제 를 소개 하 는 데 중심 을 두 고 가장 기본 적 인 지식 이다.마지막 으로 권한 과 역할 을 어떻게 분배 하 는 지,이들 이 무엇 인지,분류 와 어떻게 사용 하 는 지 소개 했다.여기 서 우 리 는 하나의 전 제 를 이해 해 야 한다.우 리 는 어떤 일 을 하려 면 반드시 권한 이 있어 야 한다.우리 가 권한 이 없 을 때 시스템 사용 자 를 사용 하여 할 수 있 습 니 다.시스템 이 우리 에 게 권한 을 준다 면 우리 도 할 수 있 습 니 다.
이상 은 Oracle 지식 에 대한 정리 이 고 많은 지식 이 언급 되 지 않 았 으 며 앞으로 의 글 업데이트 에서 계속 보충 할 것 이 니 계속 관심 을 가 져 주 십시오.

좋은 웹페이지 즐겨찾기