본문 바로가기

Technical/DBMS

MySQL 사용자 추가


먼저 상태를 확인해 본다.
> mysqladmin -u root -p status

root로 mysql db로 접속
> mysql -u root -p (또는 mysql -uroot -ppassword) 

만약 root 암호를 변경하려면
mysql> update mysql.user set password = password('root-password') where user = 'root';
를 수행한다

사용자를 추가하려면
> mysql -uroot -ppassword mysql

INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'username', password('password'));
-- %를 쓰지 않고 localhost를 쓸 경우 remote 접속이 불가능하게 되므로 주의
FLUSH privileges;

CREATE DATABASE TestDB;

* 아래는 Grant 옵션을 example로 정리한 것이다
GRANT ALL privileges ON TestDB.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH privileges;
-- username 사용자에게 TestDB에만 모든 권한을 준다. localhost 의 접속만 허용한다

GRANT SELECT ON TestDB.* TO 'username'@'%.domain.com' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH privileges;
-- username 사용자에게 TestDB에 대해 SELECT 권한을 준다. domain.com 도메인 내에서의 모든 호스트로부터의 접속을 허용한다

GRANT ALL privileges ON TestDB.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH privileges;
-- username 사용자에게 TestDB에만 모든 권한을 준다. 모든 호스트로부터의 접속을 허용한다

GRANT ALL privileges ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH privileges;
-- root 사용자에게 모든 DB object에 모든 권한을 준다. 모든 호스트로부어의 접속을 허용한다