MySQL에서 계정 생성 및 권한 부여와 계정 정보 수정하는 방법에 대해 알아보겠습니다.
로그인
root의 패스워드를 입력하여 로그인합니다.
계정 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| MySQL [(none)]> show databases; + | Database | + | information_schema | | mysql | | performance_schema | | sys | | test | | triplet_db | + 6 rows in set (0.435 sec)
MySQL [(none)]> use mysql; Database changed
|
다음 명령어를 실행하여 사용자 계정들을 확인합니다.
1 2 3 4 5 6 7 8 9
| MySQL [mysql]> SELECT user, host FROM user; + | User | Host | + | | localhost | | mariadb.sys | localhost | | mysql | localhost | | root | localhost | +
|
계정 생성
사용자 계정을 생성하는 방법입니다.
CREATE 문으로 생성
1
| CREATE USER '계정명'@'localhost' IDENTIFIED BY '비밀번호';
|
INSERT 문으로 생성
1
| INSERT INTO user (host, user, password) VALUES ('localhost', '계정명', password('비밀번호'));
|
**‘localhost’**를 **’%’**로 변경하면 원격에서 접속 가능합니다.
권한 부여
생성된 계정에 대해 모든 권한을 부여하도록 설정합니다.
GRANT 문으로 권한 부여
1
| grant all privileges on *.* to 'USERNAME'@'%' identified by 'PASSWORD';
|
해당 데이터베이스에 대해서만 권한을 부여하도록 설정합니다.
1
| grant all privileges on DB명.* to '계정명'@'%' identified by '비밀번호';
|
INSERT 문으로 권한 부여
1 2
| INSERT INTO db (Host, Db, USer, select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv) VALUES ('localhost', 'DB명', '계정명', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
|
DB명에 ‘%’ 를 넣으면 모든 DB를 나타냅니다.
계정 정보 변경
계정의 비밀번호 변경 하는 방법입니다.
UPDATE 문으로 변경
1
| UPDATE user SET password=password('비밀번호') where user='계정명';
|
SET 문으로 변경
1
| SET PASSWORD FOR '계정명'@'localhost' = PASSWORD('비밀번호');
|
계정 삭제
DELETE 문으로 삭제
1 2
| DELETE FROM user WHERE user = '계정명'; DELETE FROM db WHERE user = '계정명';
|
DROP 문으로 삭제
1
| DROP USER '계정명'@'localhost';
|
권한 삭제
1
| REVOKE ALL ON *.* FROM '계정명';
|
권한 확인
1 2 3 4 5 6 7
| MySQL [mysql]> SHOW GRANTS FOR root; + | Grants for root@% | + | GRANT ALL PRIVILEGES ON *.* TO `root`@`%` IDENTIFIED BY PASSWORD '*D08D94B3E46A8CCDA5F1682F57F8BE24F5FD1C79' | + 1 row in set (0.002 sec)
|
설정 적용
위의 설정 명령어들을 실행 후 다음 명령어를 실행해야 적용이 됩니다.