반응형
1. MYSQL 접속
mysql -u root -p
2. 현재 사용자(user) 확인
-- Tool에서 사용할때도 동일 하다.
-- mysql database에 정보가 담겨져 있으므로 mysql database 선택
use mysql; -- mysql database 선택
select host, user, password from user; -- 조회
3. 사용자 추가 및 비밀번호 설정
-- user 생성
create user [user_name];
create user new_user;
-- user 생성 및 password 설정 1
create user [user_name]@[host] identified by '[password]';
create user new_user@localhost identified by 'new_user1234!';
create user new_user@'%' identified by 'new_user1234!'; -- '%' 의 의미는 외부에서의 접근을 허용
-- user 생성 및 password 설정 2
-- 난 왜 안되지
INSERT INTO user (Host, User, Password) VALUES ('localhost', '[user_name]', password('[password]'));
INSERT INTO user (Host, User, Password) VALUES ('%', '[user_name]', password('[password]'));
-- 적용
FLUSH privileges;
4. 사용자 삭제
drop user [user_name]@'[host]';
drop user new_user@'localhost';
drop user new_user@'%';
delete from user where user = 'user_name';
5. 권한 추가
-- DB 생성
create schema [database] default character set utf8;
create schema test default character set utf8;
-- DB 목록 확인
show databases;
-- 권한 생성
GRANT ALL [authority] ON [database].[table] TO [user_name]@'[host]';
-- (보안때문에 잘 안함) 모든 database의 모든 테이블에 대해서 모든 권한 생성
GRANT ALL PRIVILEGES ON *.* TO new_user@localhost;
-- test database의 모든 테이블에 대해서 모든 권한 생성
GRANT ALL PRIVILEGES ON test.* TO new_user@localhost;
-- test database의 test_table에 대해서 모든 권한 생성
GRANT ALL PRIVILEGES ON test.test_table TO new_user@localhost;
-- test database의 test_table에 대해서 모든 권한 생성
GRANT select, insert, update ON test.test_table TO new_user@localhost;
-- localhost에서만 접속가능
grant all privileges on *.* to 'new_user'@localhost;
-- 모든 ip 에서 접속가능
grant all privileges on *.* to 'new_user'@'%';
-- 172.168.0.1 에서만 접속가능
grant all privileges on *.* to 'new_user'@'172.168.0.1';
-- grant 옵션 부여
grant all privileges on *.* to 'new_user'@localhost with grant option;
-- 권한 생성하면서 password 변경
GRANT ALL PRIVILEGES ON [database].[table] TO [user_name]@[host] IDENTIFIED BY '[password]';
GRANT ALL PRIVILEGES ON test.* TO new_user@localhost IDENTIFIED BY 'new_user1234!';
-- 적용 (메모리에 반영)
flush privileges;
6. 권한 확인
SHOW GRANTS;
SHOW GRANTS FOR [user_name]@'[host]';
SHOW GRANTS FOR new_user@'%';
7. 권한 제거
-- 권한 삭제
revoke [authority] on [database].[table] from [user_name];
--모든 권한을 삭제
revoke all ON *.* from new_user;
반응형
'DB(SQL) > mysql|maria' 카테고리의 다른 글
[MYSQL] performance-schema-statement-tables (0) | 2021.05.10 |
---|---|
[mariadb] 실행된 SQL 쿼리 이력 확인 (ubuntu) (0) | 2021.05.06 |
[MYSQL] DB DUMP (BACKUP 백업) (0) | 2020.05.07 |
MySQL 현재시간을 기준으로 (+, -) 시간 조회하기 (SUBDATE) (0) | 2020.02.23 |
mysql 자료 및 링크 (0) | 2019.11.26 |