9. Mysql
4. MySQL DataBase 생성후 사용자에게 권한 부여하기
미니대왕님
2019. 11. 4. 21:23
[MySQL] 데이터베이스 생성하고 사용자에게 권한 부여하기
1.데이터베이스 추가
mysql>CREATE DATABASE testdb;
testdb라는 이름의 database를 추가한다.
2. 사용자 생성
mysql>CREATE USER 'testuser'@'localhost' IDENTIFIED BY '12345678';
testuser라는 이름의 user를 추가한다. (비밀번호는 xxxxxx)
3. 사용자 권한 부여
mysql>GRANT ALL PRIVILEGES on testdb.* TO 'testuser'@'localhost';mysql>FLUSH PRIVILEGES;
testuser에게 testdb의 모든 테이블에 대한 모든 권한을 부여한다.
FLUSH PRIVILEGES 명령어도 잊지말고 실행해야 한다.
이제 testuser는 testdb의 INSERT, DELETE 등 모든명령어를 실행할 수 있게된다.
만약 모든 권한이 아니라 일부 권한만 부여하려면 ALL PRIVILEGES 대신 명령어를 나열하면 된다.
mysql>GRANT INSERT,UPDATE,INDEX,ALTER ON on testdb.* TO 'testuser'@'localhost';
4. 사용자 조회
사용자 정보는 user 테이블에 저장된다.
user 테이블은 mysql 데이터베이스에 존재하므로 use mysql문을 먼저 실행해야한다.
mysql>use mysql;
mysql>SELECT host, user FROM user;
+-----------------------+----------+
| host | user |
+-----------------------+----------+
| 127.0.0.1 | root |
| ::1 | root |
| localhost | |
| localhost | testuser |
| localhost | root |
| localhost.localdomain | |
| localhost.localdomain | root |
+-----------------------+----------+
7 rows in set (0.00 sec)
5. 사용자 권한 조회
testuser의 권한을 조회한다.
mysql>SHOW GRANTS FOR 'testuser'@'localhost'
+---------------------------------------------------------------------------+
| Grants for testuser@localhost |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'testuser'@'localhost' IDENTIFIED BY PASSWORD '...' |
| GRANT ALL PRIVILEGES ON `testdb`.* TO 'testuser'@'localhost' |
+---------------------------------------------------------------------------+
2 rows in set (0.00 sec)
참고 - 데이터베이스와 사용자 삭제 및 권한 제거
1.database 삭제
mysql>DROP DATABASE testdb;
testdb 데이터베이스를 삭제한다.
2. 사용자 삭제
testuser 사용자를 삭제한다.
mysql>DROP USER 'testuser'@'localhost';
3. 모든 권한 제거
testdb에 대한 testuser의 모든 권한을 제거한다.
REVOKE ALL ON testdb.* FROM 'testuser'@'localhost';
4. 특정 명령어에 대한 권한을 제거
testdb에 대한 testuser의 DROP 권한을 제거한다.
REVOKE DROP ON testdb.* FROM 'testuser'@'localhost';