권한 ( Privilege )
특정 SQL 문장을 실행하기 위한 권리로, 데이터베이스 관리자(DBA)와 사용자 간의 권한이 다르다.
데이터베이스 관리자(DBA)
- 데이터베이스와 그 객체에 대한 액세스를 사용자에게 부여한다.
- 사용자와 롤에 대해 시스템 권한과 객체 권한 부여 가능하다.
- 시스템 권한은 대개 데이터베이스 관리자(DBA)에 의해 제공된다.
- 객체 권한은 대개 객체의 소유주에 의해 제공된다.
사용자
- 데이터베이스에 액세스하기 위해 시스템 권한이 필요
- 데이터베이스에서 객체의 내용을 조작하기 위해 객체 권한이 필요
- 관련 권한들의 이름 있는 그룹인 ROLE이나 다른 사용자에게 추가로 권한을 부여하기 위한 권한을 가질 수 있다.
▶ 스키마(Schema) 는 테이블(Table), 뷰(View), 시퀀스(Sequence) 같은 객체의 모음이다.
▶ 스키마는 데이터베이스 사용자에 의해 소유되고 사용자와 동일이름을 가진다.
사용자 계정 생성
DBA는 CREATE USER 문장을 실행하여 사용자를 생성한다.
● 사용자는 이떄에는 어떤 권한도 가지지 않는다.
● DBA는 이때 그 사용자에게 여러 권한을 부여한다.
● 이 권한은 데이터베이스 수준에서 사용자가 할 수 있는 것이 무엇인가를 결정한다.
CREATE USER USER01 IDENTIFIED BY USER01;
시스템 계정 삭제
시스템 계정을 삭제할 때는 TABLE , SEQUENCE 삭제와 동일하게 DROP문을 사용한다.
▶ 단, 계정을 삭제할 때 계정의 접속을 해제해야 한다.
DROP USER USER01;
시스템 권한
생성된 계정에 권한 부여
기본 사용자가 생성되었다면, DBA는 사용자에 대한 특정 시스템 권한을 부여할 수 있다.
● DBA는 사용자에게 시스템 권한을 부여하기 위해 GRANT 문장을 사용한다.
● 일단 사용자가 권한을 부여받았으면, 사용자는 그 즉시 권한을 바로 사용할 수 있다.
GRANT
CREATE SESSION,
CREATE TABLE,
CREATE SEQUENCE,
CREATE VIEW,
CREATE PROCEDURE
TO USER01;
권한 삭제
REVOKE CREATE SESSION FROM USER01;
롤(ROLE)
롤(ROLE)은 사용자에 대해 부여될 수 있는 관련 권한의 그룹이다.
● 롤은 권한을 부여하고 철회하는 것을 수행하고 유지하기 쉽게 한다.
● 한 사용자가 여러 롤을 액세스할 수 있고 다른 여러 사용자에게 같은 롤을 지정할 수 있다.
● 롤을 사용하려면 우선 DBA에 롤을 생성해야 한다.
● 롤이 생성되면 DBA는 롤에 대한 권한뿐만 아닌 롤을 사용자에게 할당하기 위한 GRANT 문장을 사용 가능하다.
CREATE USER USER01 IDENTIFIED BY USER01;
GRANT RESOURCE, CONNECT TO USER01;
비밀번호 변경
사용자가 계정이 생성되었을 때, 각 사용자는 DBA가 초기화한 비밀번호를 갖게 된다.
사용자는 ALTER USER 문장을 사용하여 자신의 비밀번호를 수정할 수 있다.
권한부여
ALTER USER USER01
DEFAULT TABLESPACE
USERS QUOTA UNLIMITED
ON USERS;
'Programming > Database' 카테고리의 다른 글
[Database] 데이터베이스 모델링 (0) | 2023.12.13 |
---|---|
[Database] INDEX (0) | 2023.12.13 |
[Database] 시퀀스 , SEQUENCE (0) | 2023.12.12 |
[Database] 뷰, VIEW (0) | 2023.12.12 |
[Database] 제약조건 (1) | 2023.12.12 |