show
: 데이터베이스, 테이블, 사용자 등 다양한 정보를 조회할 때 사용되는 명령어
SHOW DATABASES;: 데이터베이스 목록을 조회.
SHOW TABLES;: 테이블 목록을 조회
SHOW COLUMNS FROM 테이블명;: 특정 테이블의 열(칼럼) 목록을 조회
SHOW INDEX FROM 테이블명;: 특정 테이블의 인덱스 목록을 조회
SHOW CREATE TABLE 테이블명;: 특정 테이블의 생성 구문을 조회
SHOW GRANTS FOR 사용자;: 특정 사용자가 가지고 있는 권한 목록을 조회
SHOW USERS;: 사용자 목록을 조회
use
: MariaDB에서 사용할 데이터베이스를 선택하는 명령어
DML
: 데이터베이스 데이터를 조작하는데 사용되는 SQL 문
SELECT: 데이터베이스에서 데이터를 조회하는데 사용
INSERT: 데이터를 데이터베이스에 삽입하는데 사용
UPDATE: 데이터베이스의 데이터를 업데이트(수정)하는데 사용
DELETE: 데이터베이스에서 데이터를 삭제하는데 사용
DDL
: 데이터베이스 구조를 정의하거나 조작하는데 사용되는 SQL 문
CREATE: 데이터베이스 객체(테이블, 뷰, 인덱스 등)를 생성
ALTER: 데이터베이스 객체의 구조를 변경하는데 사용
DROP: 데이터베이스 객체를 삭제하는데 사용
TRUNCATE: 테이블의 모든 데이터를 삭제하는데 사용
DCL
: 데이터베이스 권한 및 보안 관련 작업을 수행하는데 사용되는 SQL 문
GRANT: 데이터베이스 사용자에게 권한을 부여하는데 사용
REVOKE: 데이터베이스 사용자의 권한을 취소하는데 사용
mysql -u [계정ID] -p 엔터 후 비밀번호 입력
CREATE USER '계정'@'호스트(localhost or %)' IDENTIFIED BY '비밀번호';
CREATE USER 'andrew'@'localhost' IDENTIFIED BY 'maria';
CREATE USER 'andrew'@'%' IDENTIFIED BY 'maria';
** % : 모든호스트를 나타내는 와일드카드 문자
GRANT 권한 on 데이터베이스.테이블 to '계정'@'호스트' IDENTIFIED BY '비밀번호' (WITH GRANT OPTION) ;
GRANT ALL PRIVILEGES ON *.* TO 'andrew'@'localhost' IDENTIFIED BY 'maria' WITH GRANT OPTION;
GRANT SELECT, DELETE, UPDATE, INSERT ON *.* TO 'awy'@'localhost' IDENTIFIED BY 'maria' WITH GRANT OPTION;
[참조]
WITH GRANT OPTION은 MariaDB에서 권한을 부여할 때 사용하는 옵션 중 하나입니다.
이 옵션을 사용하면 권한을 부여받은 사용자가 다른 사용자에게
자신이 가진 권한을 부여할 수 있는 권한을 갖게 됩니다.
일반적으로 GRANT 문을 사용하여 권한을 부여할 때에는 WITH GRANT OPTION 옵션을 생략합니다.
이 경우, 권한을 부여받은 사용자는 해당 권한을 사용할 수 있지만,
다른 사용자에게 해당 권한을 부여할 수는 없습니다.
flush PRIVILEGES; : 권한 부여 후 갱신하는 명령어
SHOW GRANTS FOR [사용자ID]@[접속호스트];
SHOW GRANTS FOR kk@localhost;
SHOW GRANTS FOR aa@localhost;
REVOKE 권환 ON 데이터베이스.테이블 FROM '계정'@'호스트';
REVOKE ALL ON *.* FROM 'andrew'@'localhost';
REVOKE SELECT ON *.* FROM 'andrew'@'localhost';
[참조]
만약 한 데이터베이스에 권한을 준 뒤 전체 데이터베이스에 대하여
권한을 삭제하야도, 일반적인 DBMS동작방식에 의해 권한이 남아있을 수 있음.
특정 데이터베이스에 권한을 주면 삭제할 때에도 특정 데이터베이스의
권한을 삭제해야 함.
GRANT ALL PRIVILEGES ON encore.* TO 'andrew'@'localhost' IDENTIFIED BY 'maria' WITH GRANT OPTION;
REVOKE SELECT ON encore.* FROM 'andrew'@'localhost';
drop user '계정'@'호스트';
drop user 'andrew'@'localhost';
delete from user where user='계정명';
delete from user where user='kk2';