-
SQL - USER 관리, DCLSQL 2022. 10. 7. 11:28
*데이터베이스(DB)
데이터를 영구적으로 저장하기 위한 데이터 저장소
show databases : 데이터베이스 보기
create database [DB명] : 데이터베이스 생성
use [DB 명] : 해당 DB 사용하기
*유저 생성
create user [사용자 ID]@[이용 가능 IP] identified by [비밀번호];
*권한 부여 및 회수
특정 사용자에게 권한을 부여 및 회수할 수 있다.
부여 : grant [권한] on [데이터베이스.테이블] to [사용자 ID];
회수 : revoke [권한] on [데이터베이스.테이블] from [사용자 ID];
*권한의 종류(아주 일부)
all privileges : grant option을 제외한 모든 권한
select : 조회 권한 – 특정 명령어를 권한으로 부여할 수도 있다. (create, drop, update, delete 등..)
grant option : 권한을 부여해 줄 수 있는 권한 (내가 가진 것 이상으로 부여할 수 없다.)
*유저 비밀번호 변경
set password for [사용자 ID] = password([변경할 비밀번호]);
*유저 삭제
drop user [사용자 ID];
show databases; -- 데이터베이스 목록 보기 create database mydb; -- 데이터베이스 생성 use mydb; -- mydb 데이터베이스 사용 /*1. 유저 생성*/ -- CREATE USER [유저이름]@[이용 가능한 IP] IDENTIFIED BY [비밀번호]; -- web_user는 어느 IP에서나 붙을 수 있고 비밀 번호는 pass다. create user 'web_user'@'%' IDENTIFIED by 'pass'; -- dba_user는 192.168로 시작하는 IP에서 붙을 수 있고 비밀번호는 pass다. create user 'dba_user'@'192.168.%' IDENTIFIED by 'pass'; -- user002는 192.168.8.250만 붙을 수 있고 비밀번호는 pass다. create user 'user002'@'192.168.8.250' IDENTIFIED by 'pass'; -- 생성된 유저 확인 select * from mysql.user; /*2. 권한 부여 및 회수*/ -- 권한 부여 -- GRANT [권한] ON [데이터베이스.테이블] TO [사용자ID]; /* 권한의 종류(아주 일부) * ALL PRIVILEGES : GRANT OPTION을 제외한 모든 권한 * SELECT : 조회 권한 - 특정 명령어를 권한으로 부여할 수도 있다.(CREATE, DROP, UPDATE, DELETE 등..) * GRANT OPTION : 권한을 부여해 줄 수 있는 권한(내가 가진 것 이상으로 부여할 수 없다.) */ -- web_user에게 ALL PRIVILEGES 권한을 모든 데이터베이스, 모든 테이블에 사용할 수 있도록 해준다. grant all privileges on *.* to 'web_user'; -- dba_user에게 mysql 데이터베이스의 모든 테이블에서 사용할 수 있는 SELECT 명령어 권한을 준다. grant SELECT on mysql.* to 'dba_user'@'192.168.%'; -- user002에게 모든 데이터베이스, 모든 테이블에서 사용할 수 있는 select, insert, update, delete 명령어 권한을 준다. grant select, insert, update, delete on *.* to 'user002'@'192.168.8.250'; -- 권한 여부 확인 select * from mysql.user; -- 권한 회수 -- REVOKE [권한] ON [데이터베이스.테이블] FROM [사용자ID]; -- user002에게 select, insert, delete 권한을 회수해 온다. revoke select, insert, delete on *.* from 'user002'@'192.168.8.250'; /*3. 비밀번호 변경*/ -- SET PASSWORD FOR [사용자ID] = PASSWORD([변경할 비밀번호]); set password for 'user002'@'192.168.8.250' = password('1234'); /*4. 유저 삭제*/ -- DROP USER [사용자ID]; drop user 'user002'@'192.168.8.250'; drop user 'dba_user'@'192.168.%'; select * from mysql.user;
'SQL' 카테고리의 다른 글
SQL - 제약조건 (0) 2022.12.10 SQL - Transaction (0) 2022.12.10 SQL - select문에서의 여러 사용법 (0) 2022.10.07 SQL - DML (0) 2022.10.07 SQL - DDL (0) 2022.10.07