[MariaDB] chapter1

Ryong·2023년 11월 1일
0

MariaDB

목록 보기
1/8

show, use

show : 데이터베이스, 테이블, 사용자 등 다양한 정보를 조회할 때 사용되는 명령어

SHOW DATABASES;: 데이터베이스 목록을 조회.
SHOW TABLES;: 테이블 목록을 조회
SHOW COLUMNS FROM 테이블명;: 특정 테이블의 열(칼럼) 목록을 조회
SHOW INDEX FROM 테이블명;: 특정 테이블의 인덱스 목록을 조회
SHOW CREATE TABLE 테이블명;: 특정 테이블의 생성 구문을 조회
SHOW GRANTS FOR 사용자;: 특정 사용자가 가지고 있는 권한 목록을 조회
SHOW USERS;: 사용자 목록을 조회

use : MariaDB에서 사용할 데이터베이스를 선택하는 명령어

DML, DDl, DCL

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';
profile
새로운 시작. 그리고 도약

0개의 댓글