본문 바로가기

서버작업

3-1. mariaDB DB, 테이블, 유저, 권한

1. DB 로그인

$ mysql -u root -p
$ use mysql

 

2. 데이터베이스

데이터베이스 생성

CREATE DATABASE DatabaseName DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
#DatabaseName 데이터베이스 이름

 

데이터베이스 확인

SHOW DATABASES;

 

3. 사용자

사용자 확인

SELECT HOST, USER, PASSWORD FROM user;

 

사용자 생성

CREATE USER 'userName'@'%' IDENTIFIED BY 'password';
CREATE USER 'userName'@'127.0.0.1' IDENTIFIED BY 'password';

 

사용자 계정 삭제

DROP USER userName@'%';
DROP USER userName@'localhost';

 

4. 사용자 권한

 

◾ 사용자 권한 확인

SHOW GRANTS FOR 'userName'@'%';

 

사용자 권한 추가 1(모든 권한)

GRANT ALL PRIVILEGES ON databaseName.tableName TO userName@'%' identified by 'password';
GRANT ALL PRIVILEGES ON databaseName.* TO userName@'127.0.0.1' identified by 'password';

 

사용자 권한 추가 2(일부 권한)

권한 추가할 계정을 확인하여, USAGE로 아무런 권한 없는 계정이 맞는지 확인한다. 이것은 모든 글로번 권한을 'N'으로 설정한 것으로 이 계정에 특정 권한을 나중에 승인할 것이라는 가정을 하는 것이다. 이후 해당 계정에 권한을 할당한다.

# 사용자 권한 확인
SHOW GRANTS FOR 'userName'@'%';
결과: grant usage on *.* to 'testuser'@'locahost';

# 권한 추가
GRANT 권한 ON 데이터베이스.테이블 TO '아이디'@'호스트' IDENTIFIED BY '비밀번호';
GRANT 권한(컬럼명) ON 데이터베이스.테이블 TO '아이디'@'호스트' IDENTIFIED BY '비밀번호';

 

🎈권한 종류

개발자: DELETE, INSERT, SELECT, UPDATE
설계자: ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE, DELETE, INSERT, SELECT, UPDATE
DBA: ALL

 

 사용자 권한 삭제

REVOKE ALL ON databaseName.tableName FROM 'userName'@'%';
REVOKE DELETE ON databaseName.tableName FROM 'userName'@'%'; --DELETE 권한만 삭제

 

5. 새로고침

FLUSH PRIVILEGES;

 

6. 비밀번호 변경

# 10.4 이상 버전 (https://my.oops.org/195)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD_STRING';
# 10.4 미만 버전
update user set paaword=password('바꿀 비밀번호') where user='바꿀 유저계정';

 

7. 캐릭터셋

캐릭터셋 확인

select * from information_schema.SCHEMATA;

 

DB 캐릭터셋 확인

alter database dbName CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

테이블 캐릭터셋 변경

ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

 

 

반응형