MariaDB를 활용하여 데이터베이스 구축 시, 테이블을 구축하고 유저를 생성할 때 참고를 위함.
<글의 순서> 1. 유저 생성 하기 2. 권한 부여 하기 3. 유용한 명령 4. 유저 생성 시 발생할 수 있는 에러 해결 |
1. 유저 생성하기
create user '유저명'@'호스트명' identified by '비밀번호';
💡 호스트명 와일드카드 입력 예 % : 모든 호스트 111.11.%.% : 111.11 이하의 모든 호스트 |
2. 권한 부여 하기
GRANT USAGE ON ~
- 지정한 유저에게 (아직은) 실제로 권한을 부여 하지는 않음
- 지정한 유저가 옵션을 변경 할 수 있도록 하는 명령
GRANT USAGE ON *.* TO '유저명'@'호스트명' IDENTIFIED BY '비밀번호';
💡 *.*의 의미 |
GRANT (대상 권한) PRIVILEGES ON ~
- 권한 부여 명령
-- '유저명'@'호스트명'에게 '데이터베이스'의 모든 테이블에 ALL 권한을 부여한다
GRANT ALL PRIVILEGES ON `데이터베이스`.* TO '유저명'@'호스트명';
💡 부여할 수 있는 권한(privileges) 참고 https://www.techonthenet.com/mariadb/grant_revoke.php |
3. 유용한 명령
- 현재 유저의 권한 확인
SHOW GRANTS;
- 지정 유저의 권한 확인
SHOW GRANTS FOR (유저명@호스트명);
- 권한 변경사항을 반영
FLUSH PRIVILEGES;
4. 유저 생성 시 발생할 수 있는 에러 해결
ERROR 1396 Operation CREATE USER failed for '(USERNAME)'@'(HOST)' |
💡 유저를 DROP을 실행하고 다시 생성 시, 해결이 가능함
어떤 때 발생하는 에러인가?
- user 테이블에 해당 유저가 없음에도 유저 생성이 불가하고 에러가 발생
- FLUSH PRIVILEGES 쿼리 실행으로도 반영이 안 되고 생성도 불가
- 아마도? 메모리상에 존재하거나 유저가 생성되었으나 어딘가에서 반영이 안 되어 발생하는 듯 보임
'프로그래밍 > MySQL & MariaDB' 카테고리의 다른 글
[MySQL/MariaDB] 테이블의 컬럼 정보만을 추출하고 파일로 출력하기 (2) | 2021.01.14 |
---|