• 데이터 제어어(DCL, Data Control Language)
DB에 대한 보안, 무결성, 복구 등 DBMS를 제어하기 위한 언어
GRANT(권한할당), REVOKE(권한해제), COMMIT(실행), ROLLBACK(복구)
COMMIT, ROLLBACK 은 트랜젝션에 관련된 언어로 TCL 로 구분하기도 함
• 계정 확인
mysql DB의 user Table 에서 DBMS 계정에 대한 정보를 관리
mysql> desc mysql.user ;
> 현재 선택된 DB와 다른 DB의 테이블을 조회 하고 싶은 경우 <DB명>.<테이블명> 으로 접근 가능
- mysql> select user, host, password from mysql.user;


• 계정 생성1
mysql> create user ‘user명’@’접속경로’ [ identified by ‘패스워드’ ] ;

- mysql> flush privileges;
계정 정보 갱신
계정이나 권한에 대한 설정 변경 후에는 반드시 갱신해야 적용 됨
• 계정 생성2
mysql> insert into mysql.user( user, host, password ) values( ‘계정명' , ‘접속경로’ , password('비 밀번호') );
password( ) 함수를 이용해서 암호문으로 저장

mysql> flush privileges;
• 계정 비밀번호 설정
mysql> update mysql.user set password = password(' 비밀번호 ') where user='root';
password( ) 함수를 이용해서 암호문으로 저장

mysql> flush privileges;
• 계정 삭제
mysql> drop user ‘계정명’[@’접속경로’] ;
접속경로를 생략하면 ‘%’ 경로로 지정됨

mysql> flush privileges;
• 권한 확인
mysql> show grants [ for ‘계정명’@’접속경로’ ] ;
계정을 따로 지정하지 않으면 현재 접속된 계정의 권한 확인

show grants;
= 현재 접속된 계정의 권한을 확인
show grants for kuser1@localhost;
= kuser1 계정의 권한을 확인한다.
• 권한 구성
GRANT privileges[(columns)] ON item TO ‘계정명'@’접속경로' [ IDENTIFIED BY ‘비밀번호’ ] [ WITH GRANT OPTION ]

• 권한 추가
mysql> GRANT privileges[(columns)] ON item TO ‘계정명'@’접속경로' [ IDENTIFIED BY ‘비밀번호’ ] [ WITH GRANT OPTION ]
해당 계정이 존재하는 경우 권한만 부여
해당 계정이 존재하지 않는 경우 자동으로 계정 생성 후 권한 부여
모든 DB의 모든 권한 허용

grant all privileges on *.* to root@200.200.200.% with grant option;
= root 계정에 모든 데이터베이스와 모든 테이블을 설정할 수 있는 권한을 전부 부여한다.
- 특정 DB의 특정테이블의 특정 컬럼 조회 권한만 주기

GRANT select(id, name), insert on naver_db.member to kuser1@localhost;
= localhost 의 kuser1 계정에 naver_db밑에 있는 member 테이블에 id 와 name 을 확인(select)하는 권한과 데이터 추가 (insert) 권한을 부여한다.
• 권한 삭제
mysql> REVOKE privileges[(columns)] ON item FROM ‘계정명'@’접속경로’

revoke select(id), insert on naver_db.member from kuser1@localhost;
= localhost 에 kuser1 에게 부여했던 naver_db 데이터베이스 밑에 member 테이블에서 id 확인 권한과 데이터를 추가할 수 있는 권한을 삭제한다.
'Linux > SQL' 카테고리의 다른 글
| [DBMS] 문자 인코딩 확인하고 설정하기 (Character Encoding) (0) | 2021.11.29 |
|---|---|
| [DBMS] 데이터베이스 사전 (Database Schema) (0) | 2021.11.29 |
| [DBMS] DML 명령어 정리 (데이터 생성/조회/수정/삭제) (0) | 2021.11.28 |
| [DBMS] DDL 명령어 정리 (데이터베이스/테이블) (0) | 2021.11.28 |
| [DBMS] 관계형 데이터베이스의 구조 (0) | 2021.11.28 |