일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- PHP
- springboot
- CrossSiteScripting
- 프로그래머스
- 이미지엑박
- 다중기본키
- ASP
- 코딩테스트
- C#
- VMWare
- javascript
- 트리플DES
- 람다식함수
- 자동증가열
- 다중pk
- oracle
- SQL
- memoryDB
- 데이터베이스
- 스프링부트
- mysql
- 오라클
- mssql
- HTML
- 가상머신
- 쿼리
- db
- 자바스크립트
- ascx.cs
- windows7
- Today
- Total
개발바닥 아방수
MySQL 권한 제어, 사용자 생성, 패스워드 변경 본문
지난 Centos 설치하면서 MariaDB 접속
▶ MySQL ⇒ MariaDB
▶ yum -y install mariadb-server
▶ mariadb secure installation 해서 root의 패스워드 rootoor를 지정하고, 기타 설정을 해주고
▶ mysql -u root -prootoor OR mysql -u root -p(엔터 후) rootoor 입력
(참고, mysql -u root -p (한칸띄면) DB_name이 들어온다.)
✅ 터미널 접속
▶ [centos@CentOS7 ~]$ su
- 우선 리눅스에서는 아래와 같은 두 주요 개념이 있습니다.
리눅스는 Multi-User System OS / 다중 유저 접속 시스템이다. 리눅스에서는 각 유저들에 대한 권한의 중요성이 높다.
- 리눅스에는 다중 유저 접속 시스템으로써 동시에 여러 사용자들이 접속할 수 있습니다. 그리고 이는 어떤 서비스를 위한 서버의 기능으로 작동하기 때문에 각각의 유저들에 대한 권한(읽기, 쓰기, 실행 등)의 범위 관리가 매우 중요합니다.
- 리눅스에서 최고의 권한을 가지고 있는 계정은 슈퍼 유저 / Root 입니다.
- Root 계정은 리눅스 상의 모든 명령을 실행할 수 있고 이 권한이 있을 때만 실행이 가능한 프로그램들도 있습니다.
- 때문에 리눅스 유저들은 Root의 권한을 빌려야 하는 순간들이 필요하기에 이를 가능하게 하는게 su 명령어입니다
(참고출처) su / su - / sudo 의 비교 및 차이점 https://youngswooyoung.tistory.com/57
❇️ ’#’은 관리자, ‘$’는 유저입니다.
▶ Password: ▶ [root@CentOS7 centos]# mysql -V mysql Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1
▶ [root@CentOS7 centos]# service mariadb start Redirecting to /bin/systemctl start mariadb.service
▶ [root@CentOS7 centos]# systemctl start mariadb
❇️ systemctl과 service 명령어 차이점
- 결론은CentOS 7이후 버전은 systemctl~ 구문으로 제어한다.Redirecting to /bin/systemctl start xxxx.service 라며(참고출처) https://heni.tistory.com/22
- 어차피 systemctl로 redirecting되어 찾는다.
- 7버전에서 service~ 구문을 수행하면
- CentOS 6이전 버전은 service~구문으로,
- systemctl 옵션 서비스명.service~ (.service는 생략가능)
❇️ Centos 7 systemctl 서비스 명령어
- 서비스 시작 명령어: ‘#> systemctl start 서비스명’
- 서비스 부팅시 자동실행 명령어: ‘#> systemctl enable 서비스명’
- 기타 명령어는 (참고출처) https://c-i-s.tistory.com/entry/systemctl-서비스-명령어
▶ [root@CentOS7 centos]# systemctl enable mariadb
▶ [root@CentOS7 centos]# mysql -u root -p ▶ Enter password:
▶ [root@CentOS7 centos]# mysqladmin -h localhost -u root password 'rootoor’
외와 같이 root 사용자의 패스워드를 별도로 설정할 수 있다.
여기서 localhost의 오류가 뜨면 mysql로 들어가서 설정해준다.
✅ 데이터베이스(스키마) 권한 제어
- SQL 명령어중 DCL(Data Control Language)이 사용된다.(참고출처) https://www.funyphp.com/archive/mysql/2 ‘CentOS7 mysql 접속, 계정 생성, 권한 설정’
- *DCL 종류에는 GRANT와 REVOKE가 있다. (둘다 유효하다)
▶ grant all privileges on (모든 데이터베이스).(모든테이블) to ‘root’@’localhost’ indentified by ‘rootoor’;
⇒ 데이터베이스가 있고, 그 아래에 테이블들이 들어있게 된다.
⇒ localhost에 root 사용자를 생성하고 rootoor로 패스워드를 지정해서 모든 데이터베이스와 그 아래의 테이블들에게 모든 작업의 권한을 준다.
▶ grant all privileges on (모든 데이터베이스).(모든테이블) to ‘root’@’%’ indentified by ‘rootoor(password)’;
⇒ 외부에서 들어올 수 있게 하는 것이다. 원격에서 root가 rootoor로 들어올 수 있다.
▶ MariaDB [(none)]> flush privileges; (권한을 갱신한다)
▶ exit(나온다)
✅ 사용자 생성과 패스워드 변경
▶ [root@CentOS7 centos]# mysql -u root -p
▶ 사용자 생성은 create user ‘centos’@’localhost’ identified by ‘centos’; 로컬에서 접속
▶ 여기서 create user ‘centos’@’%’ identified by ‘centos’; 는 원격에서 접속가능이다
▶ 사용자 패스워드 변경은 update user set password=PASSWORD(’centos’) where user=’centos’; 식으로 해준다.
💻 실습1
▶ mysql -u root -p 입력후 패스워드
d. paul 사용자 생성과 삭제는
▶ mysql> create user 'paul'@''localhost' identified by 'rootoor'; 해서 생성해주고
▶ mysql> **drop user 'paul'@'localhost';**식으로 해서 삭제한다.
e. 사용자 root의 패스워드 변경은
▶ mysql> update user set password=PASSWORD('rootoor') where user='root'; 해준다.
f. root가 로컬로 로그인하는 것을 허용하고, 모든 DB와 Table(.)에 모든 권한을 준다면
▶ mysql> grant all privileges on . to 'root'@'localhost' identified by 'rootoor'; 과
▶mysql> grant all privileges on . to 'root'@'%' identified by 'rootoor'; 해서 로컬과 원격 호스트에서도 root로 들어오게 해준다.
g. 권한을 갱신한다면
▶ mysql> flush privileges; 해주고,
▶ quit; 해서 mysql> 프롬프트를 벗어난다.
알아두면 좋은 개념
🔎 SQL
- SQL(Structured Query Language)은 C, C++, Java, Python처럼 프로그래밍 언어다.
- SQL은 데이터베이스가 아님!!! 데이터베이스에 들어있는 데이터들을 쿼리(문의)해서 결과를 사용자에게 알려주는 언어다.
- 프로그래밍이 가능하다(Oracle DB에서는 PL/SQL이라고 한다).
🔎 데이터베이스
- 데이터가 모여있는 곳 Date Ware House에서 귀중한 정보를 추출하는 것을 데이터 마이닝이라고 한다.
- 데이터베이스 안에는 테이블들이 있다. 테이블은 행(row)과 열(column)로 이뤄져있다. 행과 열이 만나는 지점에 들어가 있는 데이터를 튜플(tuple)이라고 한다.
- 데이터베이스를 잘 알아야 BigData로 간다. BigData에서는 데이터가 정형화 되어있지 않은 경우가 많다.
- schema 스키마가 정의되어있다 = 데이터의 정형화 (Name, Size, Data type) 되어있다.
- 사용자는 SQL이라는 언어를 통해서 데이터베이스에 있는 자료를 끄집어내고 넣는 작업을 하는 것이다.
- No Schema 노스키마. SNS 내용을 한 시간동안 모은다고 하자. 타깃을 서울 20대 여성으로 모으면 데이터 정형화가 되어있지 않을 것이다. 단순한 텍스트부터 그림, 사진, 동영상등 여러가지 패턴이 있다. 그렇기에 저장될 공간을 정할 스키마를 정의할 수 없는 것이다. 스키마를 정의하지 않고 저장하는 걸 No Schema 노스미카, No SQL이라고 한다.
'데이터베이스 > MySQL' 카테고리의 다른 글
MySQL 쿼리 기본 정리 (0) | 2022.06.29 |
---|---|
(CentOS) nano 에디터 이용하여 파일 생성, MySQL 내 load data 하여 테이블에 넣기 (0) | 2022.06.29 |
MySQL 쿼리 기본, 데이터베이스/테이블/데이터 생성, 복사, 삭제 (0) | 2022.06.29 |