728x90
DB 사용자 관리의 필요성
- 현재까지 사용 방법
- MySQL 관리자인 root로 접속해서 사용
- 실무에서의 문제
- MySQL 데이터베이스를 다양한 사용자나 응용프로그램에서 접속해 사용합니다.
- 모든 사용자가 관리자로 접속을 한다면 데이터가 유출되거나 증발하는 끔찍한일이 일어날수 있습니다.

따라서 역할에 맞게 권한을 따로 주어야 합니다.
- 팀장
- 데이터베이스 관리자(DBA)의 권한 부여를 합니다,
- workbench - > [Local instance MySQL]을 클릭 해서 접속
- 사용자를 생성하는 권한은 root 에게만 있습니다.
- [Navigator]의 [Administration] 탭 -> [User and Privileges]클릭

- [User and Privileges]창에서 왼쪽 아래 <Add Account> 클릭한 후 [Login] 탭의 [Login Name]에 'director' 입력
- 비밀번호 입력후 <Apply> 클릭 -> director 사용자 등록 확인

- [Account Limits] 탭으로 쿼리 한계를 설정 -> 0은 제한 없음
- [Administrative Roles]에서는 MySQL 자체에 대한 권한설정
- [Role]의 <DBA> 체크하여 모든 권한 설정 적용

사장(CEO)
- MySQL의 모든 데이터에 읽기(Select) 권한 부여
- 계정 등록방법은 '팀장'과 같음
- [Administrativ Roles] 탭 클릭
- 사장은 MySQL의 읽기(Select)로 계획되어 있음
- [Global Privileges] 중에서 <SELECT>체크
- 왼쪽 Role 중에 <Custom>이 자동으로 체크

- 일반직원(staff)
- shopdb 데이터베이스의 모든 테이블에 대해 (Select), 쓰기(Insert, Update, Delete) 권한 부여
- 스토어드 프로시저 등을 생성(Create Routin) 하고 수정(Alter Routine) 할수 있는 권한 부여

- employees 데이터 베이스의 테이블에 대해서는 읽기(Select) 권한만 부여

TUI 환경에서의 입력문
사용자 생성
CREATE USER 사용자명@'접속할IP대역,IP' IDENTIFIED BY '패스워드';
CREATE USER DIRECTOR@'%' IDENTIFIED BY 'DIRECTOR';
권한부여
GRANT 권한(SELECT, CREATE, ....) ON *.*(데이터베이스.테이블명) TO DIRECTOR@'%' WITH GRANT OPTION;
GRANT ALL ON *.* TO DIRECTOR@'%' WITH GRANT OPTION;
사장님(CEO) : 읽기만 가능
CREATE USER CEO@'%' IDENTIFIED BY 'CEO'
GRANT SELCET ON *.* TO CEO@'%';
일반직원(Staff) : 특정 DB만 들어가고 shopdb(읽기/쓰기), employees(읽기) 설정
CREATE USER staff@'%' IDENTIFIED BY 'staff';
GRANT SELECT, INSERT, UPDATE, DELETE ON shopdb.* TO staff@'%';
GRANT SELECT ON employees.* TO staff@'%';
----------------------
centos8에 리눅스 설치
-------------------------
dnf -y install mariadb mariadb-server
systemctl status mariadb = 설치확인
systemctl start mariadb = mariadb 시작
exit로 나올수 있음
----
mysqladmin -u root password '1243';
mysql
(Access denied)
mysql -u root -p1234
---------------------
리눅스에서 mysql 권한주기
GRANT ALL ON *.* TO root@'%' WITH GRANT OPTION;
리눅스 방화벽 포트열기
firewall-cmd --add-port=3306/tcp
firewall-cmd --permanent -add-port=3306/tcp
firewall-cmd --reload
방화벽 끄기
systemctl stop firewalld728x90
'MySQL' 카테고리의 다른 글
| SQL기본.mySQL (0) | 2023.02.06 |
|---|---|
| MYSQL 팁(계속추가) (0) | 2023.02.06 |
| SELECT문.mySQL (0) | 2023.02.06 |
| char()와 varchar()의 차이 (0) | 2023.02.03 |
| 데이터베이스 모델링 (0) | 2023.02.02 |