참고) DEFAULT 기본값, 회원 가입일자(SYSDATE)

비활성화
ALTER TABLE 테이블명 DISABLE CONSTRAINT 제약조건명;

활성화
ALTER TABLE 테이블명 ENABLE CONSTRAINT 제약조건명;
예시에
제약조건명 -> MEM_AGE_CK
CREATE USERCREATE USER 사용자 이름(필수)
IDENTIFIED BY 패스워드(필수)
DEFAULT TABLESPACE 테이블 스페이스 이름(선택)
TEMPORARY TABLESPACE 테이블 스페이스(그룹) 이름(선택)
QUOTA 테이블 스페이스크기 ON 테이블 스페이스 이름(선택)
PROFILE 프로파일 이름(선택)
PASSWORD EXPIRE(선택)
ACCOUNT [LOCK/UNLOCK](선택);

CONN DBSTUDY/ORACLE
하지만 CONN 명령어를 사용해 새로 생성한 DBSTUDY 사용자로 접속을 시도하면 접속이 되지 않는다.
이는 사용자가 생성되긴 했지만 데이터베이스 연결을 위한 권한, 즉 CREATE SESSION 권한을 부여받지 못했기 때문
SYSTEM 사용자로 접속 후 DBSTUDY 사용자에게 권한 부여하기
CONN system/oracle
👩🏫참고)
GRANT: 권한 부여
REVOKE: 권한 철회
GRANT 시스템권한 TO 사용자

사용자 정보 조회
오라클 사용자의 변경과 삭제
ALTER USER
DROP USER
사용자 비번 변경해보기 -> 시스템 계정 접속 CONN system/oracle


시스템계정으로 이동하고 비번만료되게 수정해보기 CONN system/oracle

비번 변경 완!

다시 원래 비번으로 돌려뒀음!
DROP USER 사용자명; -> 스키마는 삭제가 되지 않는다
DROP USER 사용자명 CASCADE; -> 스키마도 함께 삭제 (사용자 관련 모든 데이터 삭제)

로그인 못하게 계정 잠굼도 가능

잠금 다시 풀기!

다시 접근 가능해짐!
1) 사용자 생성과 정보 수정 및 삭제, 데이터베이스의 접근, 오라클 데이터베이스의 여러 자원과 객체 생성 및 관리 등의 권한을 포함
2) 데이터베이스의 관리 권한이 있는 사용자가 부여할 수 있는 권한
3) 소유자 ANY 키워드가 들어 있는 권한은 소유자에 상관없이 사용 가능한 권한
USER(사용자)
1) CREATE USER
2) ALTER USER
3) DROP USER
SESSION(사용자)
1) CREATE SESSION
2) ALTER SESSION
TABLE(테이블)
1) CREATE TABLE
INDEX(인덱스)
VIEW(뷰)
SEQUENCE(시퀀스)
SYNONYM(동의어)
PROFILE(프로파일)
ROLE(롤)

DBSTUDY계정에서 테이블을 만들려고 하는데...

CREATE TABLE권한이 필요하다 !!!
📌1. GRANT 시스템 권한(시스템 권한 ROLE..), ...TO사용자;
권한부여를 위해서는 system계정으로 이동필요
테이블 만드는 권한을 줘보자!

세미콜론을 입력하지 않으면 문장이 아직 끝나지 않은거라 밑줄로 이어진다.

테이블 생성에 성공했다능!
📌2. GRANT 시스템 권한, ... TO 사용자 WITH ADMIN OPTION;
-> 사용자가 가지고 있는 권한을 다른 사용자에게 부여할 수 있다.

위에 명령어를 보면 DBSTUDY에게 5개의 권한을 줬는데 WITH ADMIN OPTION을 추가해줌으로써 DBSTUDY는 작은 관리자가 된것이다. 부여해준 5개의 권한만 사용할 수 있는데, DBSTUDY가 다른 사용자에게 권한을 부여하게 된다면 부여받은 쪽에서도 저 5개 권한 내에서만 부여받고 사용할 수 있다. 그외는 불가능하다.
관리자가 되었다 -> 권한부여 가능해짐



연결완룡
REVOKE 시스템권한[시스템 권한 ROLE],... FROM 사용자;

특정 사용자가 생성한 테이블,인덱스,뷰,시퀀스 등과 관련된 권한
1) TABLE(테이블)
ALTER, DELETE, INDEX, INSERT, REFERENCES, SELECT, UPDATE
2) VIEW(뷰)
3) SEQUENCE(시퀀스)
4) PROCEDURE(프로시저)
5) FUNCTION(함수)
6) PACKAGE(패키지)

GRANT 객체 권한/ALL PRIVILEGES ON 스키마.객체이름 TO 사용자 또는 ROLE/PUBLIC - 모든 사용자
GRANT 객체 권한/ALL PRIVILEGES ON 스키마.객체이름 TO 사용자 또는 ROLE/PUBLIC- 모든 사용자 WITH GRANT OPTION;
WITH GRANT OPTION: 사용자가 소유하고있는 권한을 부여할 수 있는 권한
ALL PRIVILEGES: 모든 권한
🔸 다른 스키마쪽 테이블 접근하기

DBSTUDY3가 부여받을 뿐 아니라 다른 사용자에게 해당 권한 부여해줄수 있게 WITH GRANT OPTION;도 추가해줬다.

접근되었당구리 ~~!
DBSTUDY3가 DBSTUDY2에게 조회 기능만 주었다.

🔼CONNECT, RESOURCE롤로 권한추가 해줘야함
REVOKE 객체 권한, ... ON 스키마.객체이름 FROM 사용자명;

객체권한에서 Revoke를 해주려면 해당 권한이 있어야 하기때문에 시스템 계정에서도 권한을 주지 않으면 철회가 불가능하다.
1) 여러 종류의 권한을 묶어 놓은 그룹
2) 오라클 데이터베이스를 설치할 때 기본으로 제공되는 사전 정의된 롤(predefined roles)과 사용자 정의 롤(user roles)로 나뉩니다.
CREATE ROLE 롤명칭;
CREATE 시스템 권한, ...TO ROLE 명칭;

권한부여 후 시퀀스 생성

1) CONNECT롤
ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE, CREATE VIEW
2) RESOURCE 롤
CREATE TRIGGER, CREATE SEQUENCE, CREATE TYPE, CREATE PROCEDURE, CREATE CLUSTER, CREATE OPERATOR, CREATE INDEXTYPE, CREATE TABLE
3) 보통 새로운 사용자를 생성하면 CONNECT롤과 RESOURCE롤을 부여하는 경우가 많습니다
🌟🌟 CONNECT롤과 RESOURCE롤을 부여하면 바로 사용할 수 있다.
시험 ~~

1) 롤 생성
2) 부여된 롤과 권환 확인
3) 롤 취소
3) 롤 삭제
DROP ROLE 롤명칭;
