728x90
반응형
사용자관리
- 신규 사용자 생성
- CREATE USER 'testuser'@'localhost' IDENTIFIED BY ‘testpw’;
- 어떤 곳에서도 원격접속을 가능하도록 하려면 localhost대신 % 기호 사용
- CREATE USER 'testuser'@'localhost' IDENTIFIED BY ‘testpw’;
- 사용자 목록 조회
- SELECT * FROM mysql.user;
- 특정DB의 특정테이블에 특정권한 부여
- GRANT SELECT ON board.author TO ‘testuser'@'localhost';
- 특정DB의 특정테이블에 특정권한 뺏기
- REVOKE SELECT ON board.author FROM ‘testuser'@'localhost';
- 권한 변경사항 적용
- FLUSH PRIVILEGES;
- 특정 사용자 권한 조회
- SHOW GRANTS FOR 'testuser'@'localhost';
- 사용자 삭제
- DROP USER 'testuser'@'localhost';
- 실습
author 테이블에 Select 권한만 부여한 testuser 사용자 생성하기
CREATE USER 'testuser'@'localhost' IDENTIFIED BY '1234'; -- 신규 사용자 생성 show grants for 'testuser'@'localhost'; -- 특정 사용자 권한 조회
GRANT INSERT ON board.author TO 'testuser'@'localhost'; -- author 테이블에 INSERT 권한 부여 REVOKE INSERT ON board.author FROM 'testuser'@'localhost'; -- INSERT 권한 해제 GRANT SELECT ON board.author TO 'testuser'@'localhost'; -- SELECT 권한 부여 FLUSH PRIVILEGES; -- 변경사항 적용 show grants for 'testuser'@'localhost';
→ SELECT 권한 부여 완료
workbench 홈 - MySQL Connections - +버튼 클릭
Connection Name, Username(생성한 사용자이름) 채우기 - Store in Vault
Password(사용자 생성 시 비밀번호) 채우기 - OK - OK
만들어진 testuser로 접근해서 test 해보자
use board; select * from author;
select * from post;
→ post 테이블은 권한이 없기 때문에 조회 불가능
INSERT INTO `board`.`author` (`id`, `name`) VALUES ('9', 'test');
→ author 테이블의 SELECT 권한만 있기 때문에 INSERT 불가능
VIEW
- 뷰(View)는 데이터베이스의 테이블과 유사한 구조를 가지지만, 가상의 테이블로서 실제 데이터를 저장하지 않는 데이트베이스 - 실제 데이터베이스를 참조만 함
- CREATE VIEW 뷰네임 AS SELECT 컬럼1, 컬럼2,.. FROM 테이블명; - 뷰 생성
- SLELCT * FROM 뷰네임; - 뷰 조회
- 특징
- 복잡한 쿼리 결과를 뷰로 생성해두면, 이후에는 뷰를 간단한 쿼리로 호출
- 뷰를 사용하여 특정 사용자에게 테이블의 일부 데이터만을 보여주는 것이 가능
- GRANT를 통해 뷰에 대한 권한만 부여
- GRANT SELECT ON [데이터베이스 이름] [뷰 이름] TO ‘testuser’@’localhost’;
- FLUSH PRIVILEGES;
- 뷰를 사용하면 필요한 컬럼만 선택하여 보여줄 수 있음
- 실습
- author에 name, email만 조회가능한 VIEW 만들기
CREATE VIEW author_for_view AS SELECT name, email FROM author; SELECT * FROM author_for_view;
- testuser의 기존 AUTHOR 관련 VIEW 테이블에 조회 권한 부여
CREATE USER 'testuser'@'localhost' IDENTIFIED BY '1234'; GRANT SELECT ON author_for_view TO 'testuser'@'localhost'; FLUSH PRIVILEGES; show grants for 'testuser'@'localhost';
728x90
반응형
'Database' 카테고리의 다른 글
[MariaDB] DB Dump (1) | 2023.11.24 |
---|---|
[MariaDB] 저장 프로시저 (1) | 2023.11.24 |
[MariaDB] INDEX (0) | 2023.11.24 |
[MariaDB] GROUP BY (0) | 2023.11.24 |
[MariaDB] JOIN (1) | 2023.11.22 |