[Oracle] 오라클 #23, account(사용자) 관련 SQL
- Database/Oracle
- 2019. 3. 17. 15:39
사용자 관련 SQL
- DCL의 한 부분
- 계정 생성 + 삭제
- 리소스 접근 권한 제어
사용자 계정 생성하기
- 시스템 권한을 가지고 있는 계정만 가능하다.
새 계정 관리하기
- create user 계정명 identified by 암호; 계정 생성 + 암호지정
- alter user 계정명 identified by 암호; 암호 수정
- drop user 계정명; 계정 삭제
- 프로젝트 용도 > 계정(스키마) 생성 > 작업공간 별도로 생성( 즉 프로젝트마다 계정을 만들어서 각각의 계정별 DB를 따로 관리)
- hr 계졍 로그인해서 다음의 쿼리를 입력!
create user team identified by java1234; --> 안됨 왜냐면 시스템 권한이 없는 계정으로 해서.(hr은 권한이 없음)
- system계정
show user; "USER이(가) SYSTEM입니다.
create user team identified by java1234; --> team이라는 계정을 생성하고 암호를 java1234라고 한다.
각종 권한 관리하기
- 권한(privileges) 부여하기(할당하기)
ex) grant 권한 to 유저명;
grant create session to team; --> team 계정에게 session을 생성할 수 있는 권한을 부여 > 접속권한
1. system으로 변경
grant create table to team; --테이블 생성 권한(수정+삭제 포함)
grant create view to team; --뷰 생성 권한
grant create sequence to team;--시퀀스 생성권한
2. 롤(role)역할 관리하기
- 권한 집합
1. connect : 사용자가 DB 접속 권한
2. resource :사용자가 객체를 조작할 수 있는 권한 모음.
3. dba :관리자급 계정 권한 모음
ex) grant resource to team;
create table tblTeam
(
seq number primary key,
data varchar2(100) not null
); --ORA-01031: insufficient privileges (불충분한 권한) 테이블 만들 권한이 없다. -1-
계정 추가하기(일반계정)
1. 계정생성
create user user1 identified by java1234;
2. 권한부여
grant connect to user1;
grant resource to user1;
grant create view to user1;
select * from dba_roles;
>> select grantee, privilege from dba_sys_privs where grantee ='RESOURCE';
>> select grantee, privilege from dba_sys_privs where grantee ='CONNECT';
>> select grantee, privilege from dba_sys_privs where grantee ='DBA';
객체 권한 관리하기
- 테이블, 뷰, 시퀀스 등에 대해서 객체별로 DML을 사용할 수 있는 권한 제어
ex) grant 권한 on 대상 to 유저;
- system 계정
grant select on hr.tblInsa to team;
grant delete on hr.tblInsa to team;
delete from hr.tblInsa where num=1001;
>> system 계정으로 로그인해도 hr계정에 있는 오브젝트들을 DML사용할 수 있음.
- team
select * from tabs;
select * from hr.tblInsa; --다른계정의 자원은 반드시 소속(계정명.스키마명)을 명시해야한다.
권한 뺏기
revoke delete on hr.tblInsa from team;
>> team 계정에게서 hr.tblInsa 테이블에 대한 삭제 DML 권한을 빼앗는다.
revoke create session from team;
>> team 계정의 DB접속 권한을 제거
DB를 이용한 팀프로젝트할 떄는 이렇게하자
- 팀계정 > 권한부여(connect,resource, create, view)
유저 삭제
drop user team cascade; >> 어떤 제약조건이 걸려있든 다 떼버리고 team 계정을 삭제한다.
drop user user1; >> user1 삭제
'Database > Oracle' 카테고리의 다른 글
[Oracle] 오라클, 프로시저 구문 예제 및 응용법(1) (0) | 2019.04.15 |
---|---|
PL/SQL( Procedural Language Extensions to SQL )이란? (2) | 2019.03.31 |
[Oracle] 오라클 #22, Index(인덱스) 개념 및 예제 (2) | 2019.03.15 |
[Oracle] 오라클 #21, 트랜잭션(Transaction)의 개념 및 예제(commit, rollback, savepoint) (0) | 2019.03.14 |
[Oracle] 오라클 #20, union과 union all 개념 및 예제 (+ intersect, minus) (0) | 2019.03.09 |