DB
데이터베이스는 데이터를 영구적으로 저장할 수 있는 저장소이다.
DB 를 이용하면 서로 다른 시스템 간에 데이터를 공유할 수 있다.
DB 를 관리하는 시스템을 DBMS 라고 한다. 다양한 DBMS 들이 존재한다.
user create
유저 생성은
-- CREATE USER [유저이름]@[이용가능IP] IDENTIFIED BY [비밀번호]
/* 여러 줄 SQL 주석 */
-- 1줄 짜리 SQL 주석
-- 명령어를 메모해 놓는 기능
-- 특정 명령어를 선택해서 실행이 가능(전체 실행도 가능)
-- root : DB의 관리자 계정(유저 관리, 권한 관리)
-- 유저 아이디는 web_user 이고, 접속 허용 ip는 아무데서나(%)이고, 비밀번호는 pass
create user 'web_user'@'%' IDENTIFIED by 'pass';
-- 유저 아이디는 dba_user 이고, 접속 허용 ip는 192.168.0 으로 시작하는 곳이고, 비밀번호는 pass
create user 'dba_user'@'192.168.0.%' IDENTIFIED by 'pass';
유저를 조회하는 명령어
select * from mysql.user;
비밀번호 변경
SET PASSWORD FOR [사용자]@[IP] = PASSWORD([비밀번호]);
권한 부여
-- 권한 부여
-- database : package / table : class
-- GRANT [권한, 권한, 권한...] ON [데이터베이스.테이블] TO [사용자]@[IP];
/* SELECT : 읽기권한, UPDATE : 수정권한, INSERT : 쓰기권한, DELETE : 삭제권한
* GRANT OPTION : 권한 부여 권한(내가 가진거 이상 부여할 수 없다)
* ALL PRIVILEGES : 모든 권한 부여(GRANT OPTION 제외)
*
*
*/
-- 읽기(select) 권한을 mysql 데이터베이스의 모든 테이블을 다룰 수 있도록 dba_user에게 부여해라
grant select on mysql.* to 'dba_user'@'192.168.0.%';
-- user002 에게 모든 데이터베이스, 모든 테이블에 읽기, 쓰기, 수정, 삭제 권한을 부여해라
grant select, insert, update, delete on *.* to 'user002'@'192.168.0.120';
-- web_user 에게 모든 데이터베이스, 모든 테이블에 모든 권한을 부여해라(권한부여 옵션은 제외)
grant all privileges on *.* to 'web_user'@'%';
-- IP 가 모두 허용 상태라면 이름만 써도 가능
grant all privileges on *.* to 'web_user';
권한 회수
-- 권한 회수
-- REVOKE [권한, 권한, 권한...] ON [데이터베이스.테이블] FROM [사용자]@[IP];
revoke insert, update, delete on *.* from 'user002'@'192.168.0.120';
유저 삭제
/* 3. 유저 삭제 */
-- create 로 만든 녀석은 alter 로 수정하고 drop 으로 삭제한다
-- insert 로 넣은 녀석은 update 로 수정하고 delete 로 삭제한다
-- DROP USER [유저이름];
drop user 'user002'@'192.168.0.120';
drop user 'dba_user'@'192.168.0.%';
-- DCL(Data Control Language) : 데이터 조작어(데이터를 통제하는 구문)
-- grant, revoke
-- 권한을 주고 뺏음으로서 데이터를 다루는 것을 통제
'개발 > DB(MariaDB)' 카테고리의 다른 글
6. DB - (key) (0) | 2025.03.17 |
---|---|
5. DB - (트랜잭션) (0) | 2025.03.17 |
4. DB - (DML-2, ORDER BY, GROUP BY, HAVING) (0) | 2025.03.17 |
3. DB - (DML-1) (0) | 2025.03.17 |
2. DB - (테이블 생성, 수정) (0) | 2025.03.17 |