USER
와 SCHEMA
에 대해 알아보도록 하자!
오라클 db에서 우리가 하려는 최종적인 일은 표에다 정보를 기록하고, 기록된 정보를 읽는 것이다. 그러므로, 표를 만들 수 있어야 한다!
이번에는 사용자와 스키마에 대해 알아보고, 사용자를 생성하는 방법 및 사용자에게 권한을 부여하는 방법을 알아보자!
표를 만들다 보면 표가 점점 많아지게 된다.
우리는 자연스럽게 연관된 표를 그룹핑하기 위한 체계가 필요하다.
그 체계를 Schema
라고 부른다. 서로 연관된 표를 그룹핑하는 디렉토리로 이해하면 좋다.
Schema
에 속한 표들을 정의하는 게 개념적으로는 스키마이다. (데이터베이스 구조)
스키마를 만들거나 생각하기 위해서 같이 생각할 개념이 사용자(USER)
다.
오라클은 여러 사용자를 만들 수 있고, 각각 사용자는 자신이 관리하는 테이블에 접속할 수 있다. 그리고 사용자를 생성하게 되면, 사용자에 해당되는 스키마
가 만들어지게 된다!
그러므로, 스키마와 사용자는 서로 같은 것은 아니지만, 위와 같은 이유로 함께 생각하는 것이 좋다! 스키마를 관리하는 건 사용자니까!
이제 사용자를 생성해보자! 사용자 생성
은 관리자
권한으로 해야한다.
사용자 명에 sys as SYSDBA
를 입력하고, 엔터를 두번 치자.
이렇게 뜨면 접속에 성공한 것이다!
사용자를 만들어야 스키마를 만들 수 있기 때문에, 사용자를 먼저 생성하자.
https://docs.oracle.com/database/121/SQLRF/statements_8003.htm#SQLRF01503
사용자 생성하는 법을 오라클 공식 메뉴얼을 통해 알아보자.
여기서 ⬜
로 되어 있는 것들은 키워드로, 그대로 사용해야 한다.
⚪
타원으로 되어있는 부분들은 우리가 바꿔야 할 내용
이다.
그리고 CREATE USER 사용자명 IDENTIFIED
다음에 BY
를 쓸지, EXTERNALLY
를 쓸지, GLOBALLY
를 쓸지 선택하라는 것이다. 비밀번호를 이용해 사용자를 생성할 것이기 때문에 BY
를 사용할 것이다.
이제 위에서 배운 것을 토대로 직접 사용자를 생성해보도록 하자~!
CREATE USER 사용자명 IDENTIFIED BY 비밀번호;
이렇게 사용자를 생성해주자!
그러면 유저가 생성되었다는 문구가 뜬다.
즉, 이것은 dang
이라는 스키마도 생성된 것을 뜻한다.
exit
를 치면, SQL PLUS
에서 나갈 수 있다.
이제 다시 sqlplus에 들어가서, 아까 만든 사용자로 접속해보자!
안된다! 왜냐하면 콘솔을 다루기 위한 dang
사용자가 권한을 가지고 있지 않기 때문이다.
이제는 사용자에게 권한을 부여해보자!!
관리자
로서 사용자에게 권한을 부여해야하기 때문에, 위 처럼 sys as SYSDBA
를 치고, 관리자로 접속하자!
사용자에게 권한을 부여하는 GRANT
이며, 뒤에 TO
와 함께 쓴다.
GRANT 권한 TO 사용자명;
dang
이라는 사용자에게 DBA
권한을 부여하는 명령어다.
그러나, 실제로는 DBA처럼 최대 권한을 주면 안되고, 진짜 필요한 만큼 최소한의 권한을 줘야한다!
이번에 다시 sqlplus
에 접속해서 dang
유저로 접속해보자.
드디어 접속도 성공했다!