250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- remove()
- count()
- discard()
- choice()
- decode()
- zipfile
- HTML
- fileinput
- MySqlDB
- shutil
- __sub__
- 오버라이딩
- items()
- locals()
- __annotations__
- View
- Database
- mro()
- glob
- randrange()
- shuffle()
- node.js
- 파이썬
- __len__
- JS
- inplace()
- MySQL
- CSS
- fnmatch
- __getitem__
Archives
- Today
- Total
흰둥이는 코드를 짤 때 짖어 (왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!)
(MySQL) 사용자 본문
728x90
반응형
1. 사용자 추가하기
- MySQL 8.0 Commane Line Client 'root' 계정으로 로그인
- 로컬에서 접속 가능한 사용자 추가하기
create user '사용자명'@'localhost' identified by '사용자 비밀번호';
create user 'apple'@'localhost' identified by '1111';
- DB 권한 부여하기
# grant all privileges on *.* to '사용자'@'localhost'; # 모든 DB에서 접근 가능
# grant all privileges on 데이터베이스명.* to '사용자'@'localhost';
grant all privileges on *.* to 'apple'@'localhost';
flush privileges; # 새로운 세팅을 적용함
✅ 할당 권한 상세 옵션
- create, drop, alter: 테이블에 대한 생성, 삭제, 변경 권한
- select, insert, update, delete: 테이블의 데이터를 조회, 삽입, 변경, 삭제에 대한 권한
- all: 모든 권한
- usage: 권한을 부여하지 않고 계정만 생성
# grant select, .. on 데이터베이스명.테이블명 to '사용자'@'localhost';
✅ IP 권한 상세 옵션
- %: 모든 IP에서 접근이 가능
- 127.0.0.1: localhost에서 접근이 가능
# grant select, .. on 데이터베이스명.테이블명 to '사용자'@'%';
# grant select, .. on 데이터베이스명.테이블명 to '사용자'@'특정 ip주소';
apple 전용 데이터베이스 생성하여 확인
show databases;
2. 문제
- apple 데이터베이스에 kdt.member 테이블을 복사하고 해당 테이블의 select 권한만 가능한 orange 계정을 만들어보자.
create database apple; # apple 데이터베이스 생성
use apple;
create table apple.member(select * from kdt.member);
apple데이터베이스에 member테이블을 생성하는데 kdt데이터베이스에 있는 member테이블을 복사해온다.
create user 'orange'@'localhost' identified by '1111';
grant select on apple.member to 'orange'@'localhost';
flush privileges;
orange라는 사용자를 만들어 apple데이터베이스에 있는 member테이블에 select 기능의 권한을 부여하였다.
orange 사용자 전용 database 생성
use apple;
select * from member;
update member set point = 500 where userid='berry'; # Error Code: 1142. UPDATE command denied to user 'orange'@'localhost' for table 'member'
orange 계정에 update 권한이 없어 에러 발생
3. 사용자 목록 조회
use mysql;
select user, host from user;
MySQL 데이터베이스에서 user를 조회할 수 있다.
4. 사용자 제거
drop user '사용자명'@'localhost'; # 추천!
delete from user where user=계정명;
5. 사용자 권한 조회
# show grants for '계정명'@'localhost';
show grants for 'apple'@'localhost';
show grants for 'orange'@'localhost';
6. 사용자 권한 제거
# revoke 권한명 privileges on 데이터베이스명.테이블명 from '계정명'@'localhost';
revoke all privileges on *.* from 'apple'@'localhost';
728x90
반응형
'MySQL' 카테고리의 다른 글
(MySQL) 기초 문법(트랜젝션) (0) | 2023.03.21 |
---|---|
(MySQL) 기초 문법(뷰) (0) | 2023.03.21 |
(MySQL) 기초 문법(테이블 복사) (0) | 2023.03.20 |
(MySQL) 기초 문법(문자열 함수) (0) | 2023.03.20 |
(MySQL) 기초 문법(서브 쿼리) (0) | 2023.03.20 |
Comments