미래학자
[MySQL] 10장 사용자 권한 주기 (GRANT) 본문
- 권한 기본 설정 (GRANT)
- 특정 데이터 베이스에 대한 권한 주기
- 여러가지 권한
- 권한 취소
1. 권한 기본 설정 (GRANT)
루트(root) 사용자 암호 설정
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 5.7 이전 버전 | |
mysqladmin -u root password 새비밀번호 | |
mysql -u root mysql | |
---- | |
mysql> UPDATE user SET password=password('새비밀번호') WHERE user='root'; | |
mysql> FLUSH PRIVILEGES; | |
mysql> SET PASSWORD FOR root=password('새비밀번호'); | |
# 5.7 이 후 | |
SET PASSWORD FOR 'root'@'localhost' = password_option; # root 계정에서 | |
SET PASSWORD = password_option; # 현재 사용자 |
5.7 버전을 기준으로 명령어가 바뀌었다.
사용자 추가 및 테이블에 대한 권한 설정
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE USER test_user IDENTIFIED BY 'test'; | |
GRANT SELECT ON study_db.color TO test_user; |
3 : test_user는 study_db 데이터 베이스의 color 테이블에 대해 SELECT 할 수 있는 권한을 가진다.
2. 특정 데이터 베이스에 대한 권한 주기
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
GRANT SELECT, INSERT ON study_db.* TO a_user; | |
GRANT ALL ON study_db.* TO a_user; | |
GRANT SELECT ON *.* TO a_user; |
2 : 데이터 베이스의 모든 테이블에 대해 모든 권한을 준다.
3 : a_user는 모든 데이터 베이스의 모든 테이블에 대해 SELECT 권한을 가진다.
3. 여러가지 권한
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 역할 만들어 권한 부여하기 | |
CREATE ROLE insert_manager; | |
GRANT INSERT, SELECT ON some_db.* TO insert_manager; | |
GRANT insert_manager TO b_user; | |
# 권한을 수여할 권한 부여하기 | |
GRANT ALL ON study_db.* TO test_user WITH GRANT OPTION; | |
# WITH GRANT OPTION을 주면 test_user 가 가진 권한을 남에게 줄 수 있음(현재는 root에서 test_user에게 권한을 주었음) | |
# 역할을 수여알 권한 부여하기 | |
# WITH GRANT OPTION과 비슷하게 역할 또한 수여 가능하다. | |
GRANT inser_manager TO c_user WITH ADMIN OPTION; | |
# 사용자 생성과 동시에 권한 부여하기 | |
GRANT SELECT ON ab_db TO e_user IDENTIFIED BY 'abcd33232'; |
4. 권한 취소
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
REVOKE SELECT ON ab_db.* FROM c_user; | |
# c_user로 부터 ab_db 데이터 베이스의 모든 테이블에 대해 SELECT 할 권한을 제거한다. | |
REVOKE GRANT OPTION ON SELECT ON ab_db.* FROM c_user | |
# c_user로 부터 권한을 수여할 권한만 없앤다. | |
REVOKE SELECT ON ab_db.* FROM a_user CASCADE; | |
REVOKE SELECT ON ab_db.* FROM a_user RESTRICT; | |
# 위 : a_user가 다른 사람에게 수여한 모든 권한을 없앤다. | |
# 아래 : a_user의 권만한 없앤다. |
* 위 CASCADE 또는 RESTRICT 둘 다 없을 경우 DEFAULT가 CASCADE
'DataBase' 카테고리의 다른 글
[MySQL] 11장 부록 (트랜잭션, 뷰, Date) (0) | 2016.11.23 |
---|---|
[MySQL] 9장 대용량 데이터 샘플 (SAMPLE) 사용하기 (1) | 2016.11.23 |
[MySQL] 8장 유니온(UNION), 서브 쿼리 (1) | 2016.11.22 |
[MySQL] 7장 조인 : JOIN (INNER, LEFT, RIGHT) (34) | 2016.11.22 |
[MySQL] 6장 외래 키 설정하기, 1NF (테이블 쪼개기), (1) | 2016.11.21 |
Comments