1. mysql root 계정으로 접속
show databases;
mysql database 확인.
- mysql 을 전체적으로 관리하는 DB
use mysql;
show tables;
DB 로 mysql 사용 지정.
mysql DB 내 테이블 조회 && 맨아래 user 테이블 확인
2. 계정 생성
원하는 계정 아이디로 localhost 와 %(외부 접속용) 두개를 만들어준다.
CREATE USER '<계정아이디>'@localhost IDENTIFIED BY '<비밀번호>';
CREATE USER '<계정아이디>'@'%' IDENTIFIED BY '<비밀번호>';
commit;
localhost 는 내부 IP 접속용.
% 는 외부 IP 접속용. -> 123.123.% or 123.123.123.0/24 이런식으로 사용 가능
4번에서 확인한 user table에서 계정 정상 생성을 확인해준다.
SELECT host, user FROM user;
% 와 localhost 로 추가된것을 확인.
계정 생성 완료했으니 데이터 베이스 만들고 상기 계정들을 해당 데이터베이스에만 권한이 작용하도록 설정을 해주겠다.
3. 데이터 베이스 생성
CREATE SCHEMA <데이터베이스 이름>;
* 데이터베이스 명명 규칙 : 단어와 단어 사이는 "_" 로 구분
4. 생성된 데이터베이스에 새로운 계정 권한 부여
localhost, % 둘다 등록.
GRANT ALL PRIVILEGES ON <DB이름>.* TO '<계정>'@localhost;
GRANT ALL PRIVILEGES ON <DB이름>.* TO '<계정>'@'%';
* <DB 이름>.<Table 이름> 이다. 이렇게 되면 특정 DB 에 특정 Table 에만 모든 권한이 부여된다.
* 하지만 <DB 이름>.* 의 뜻은 특정 DB 내 모든 Tables 에 모든 권한을 부여하겠다는 뜻이다.
권한 부여 내용 반영
flush privileges;
5. 권한 정상 부여 확인
SHOW GRANTS FOR '<계정 ID>'@'%';
SHOW GRANTS FOR '<계정 ID>'@localhost;
USAGE 권한 지정자는 "권한 없이 계정만 존재" 한다는 의미로 사용.
현재 모든 권한은 방금 지정해준 Database 에만 있는것을 확인.
localhost 와 % 둘다 확인할 것.
계정 생성 및 권한 설정 완료
새로 생성한 계정 아이디로 접속해서 Database 를 확인해보면 mysql, sys 같은 중요 root Database 들은 없고 위에서 권한을 할당해준 Database 가 보일것이다.
'Work Box (Ubuntu Server) > Ubuntu - MySQL' 카테고리의 다른 글
[Ubuntu][MySQL] 외부에서 Workbench로 DB 접속 (0) | 2023.06.11 |
---|---|
[Ubuntu][MySQL] 우분투에 MySQL 설치하기 (0) | 2023.06.11 |