안녕하세요. 오늘은 mysql 사용자 생성 및 권한 설정에 대해 정리해 보겠습니다.
우선 mysql로 접근합니다.
# mysql 또는 # mysql -u root -p 를 통해 접근합니다.
1. 권한을 줄 DB를 생성합니다.
> create database db명;
2. 사용자 추가
> create user '사용자'@'localhost' identified by '패스워드';
> create user '사용자'@'%' identified by '패스워드';
2-1. 사용자 삭제
> drop user '사용자'@'localhost';
> drop user '사용자'@'%';
3. 사용자 추가 및 사용자가 사용할 DB 설정 (외부접속 시에는 localhost를 %로 변경)
> insert into user(user, host, password, ssl_cipher, x509_issuer, x509_subject) values('user명', 'localhost', password('사용할 패스워드'), ", ", ");
또는.
> insert into user(user, host, password) values('localhost', 'user명', password('사용할 패스워드'));
> insert into user(user, host, password) values('%', 'user명', password('사용할 패스워드'));
> insert into db values('localhost', 'user명', password('사용할 패스워드'));
> flush privileges;
3-1. grant 문을 사용하여 사용자에게 DB 권한 주기.
- 일반 사용자 추가
> grant all privileges on dbuser.* to dbuser@localhost identified by 'password' with grant option;
- 특정 이름의 데이터베이스에 대한 모든 권한을 가지는 사용자 추가
> grant all privileges on 'dbuser_%'.* to dbuser@localhost identified by 'password' with grant option;
: dbuser로 시작되는 데이터베이스에 대한 모든 권한을 가지는 dbuser 사용자 계정 추가. 위와 같이 계정을 만들면 새로운 사용자에 대한 개별적인 데이터베이스 권한 설정을 생략할 수 있음.
- 양식
> grant [부여할 권한] on [대상DB] to [사용자명] identified by '패스워드';
> grant all privileges on *.* to user명@"%" identified by '패스워드' with grant option;
> grant all privileges on *.* to user명@"localhost" identified by '패스워드' with grant option;
> grant all privileges on *.* to user명@"user명@IP주소" identified by '패스워드' with grant option;
- localhost가 아니라 외부 또는 특정 호스트에 대한 권한 설정을 하면 다른 호스트에서도 해당 DB에 접근할 수 있고 테이블 추가 삭제 등의 권한설정도 가능합니다.
- 하지만 보통은 터미널 상에서 mysql로 직접 접근하여 사용하는 것보다 DBMS tool을 사용하는 것이 일반적입니다.
감사합니다.
'OS' 카테고리의 다른 글
mysql 4.x 에서 5.1로 마이그레이션 방법 (0) | 2014.09.19 |
---|---|
mysql error 정리(작성중) (0) | 2014.09.19 |
mysql 백업 및 복구하기 (0) | 2014.09.19 |
web server와 db서버가 따로 있을 경우 느림증상 (0) | 2014.09.19 |
Microsoft ACPI-Compliant System (0) | 2014.09.19 |