[ server ][ mysql ] 사용자 계정 권한 추가, 수정, 삭제 CentOS7 mysql 접속, 계정 생성, 권한 설정 > database

본문 바로가기
사이트 내 전체검색

database

[ server ][ mysql ] 사용자 계정 권한 추가, 수정, 삭제 CentOS7 mysql 접속, 계정 생성, 권한 설정

페이지 정보

작성자 웹지기 댓글 0건 조회 11,918회 작성일 18-12-14 15:21

본문

mysql 접속 방법은 ssh root 계정에 로그인을 한 후 mysql에 로그인한다.

# mysql -uroot -p

#Enter password: 

#Welcome to the MariaDB monitor.  Commands end with ; or \g.

#Your MariaDB connection id is 9145

#Server version: 10.3.13-MariaDB MariaDB Server

#

#Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

#

#Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

#

#MariaDB [(none)]> 


mysql에 접속을 했으면 다음으로 mysql database를 선택한다.

# use mysql;

#Reading table information for completion of table and column names

#You can turn off this feature to get a quicker startup with -A

#Database changed

#MariaDB [mysql]>


mysql database의 스키마 구성을 확인해보자.

# show tables;


mysql_3png.png

 

여기서 user라고 되어 있는 부분이 사용자 계정이 정의된 table이다.

계정 정보를 조회하고 계정을 만들자.

# select host, user from user; 


mysql_4.png

 

현재 계정은 하나고 접속할 수 있는 곳은 localhost 와 127.0.0.1 뿐이다.

다음으로 계정을 만든다.

계정을 만들때 각각의 아이피로 해야 한다. localhost 와 127.0.0.1 또는 일반아이피 모두 따로 넣어주어야 한다(동시 입력 불가)

명령 : create user <계정명>@'<원하는 호스트>' identified by '<암호>'

- 호스트 부분에 들어갈 수 있는 것

 

localhost, 127.0.0.1 = 자신

% = 모두허용

공인아이피 = 해당아이피만

# create user test@localhost identified by '1234567890';

# select host, user from user;


mysql_5.png

 

test 계정이 localhost로 추가된 것을 볼 수가 있다.

이는 localhost에서만 허용되므로 외부에서 접속을 하려면 localhost 대신 % 로 설정 한다.

이번에는 외부접속이 가능한 test계정을 만든다.

# create user test@'%' identified by '1234567890';

 

mysql_6.png

 

이제 test 계정의 host가 %(외부접속)과 localhost 두개가 되었다.

외부접속시 % 부분을 192.168.%로 설정하면 192.168.xxx.xxx에서 접속이 가능하는 의미.

계정삭제는 지우고 싶은 조건이 맞지 않으면 해당 계정이 모두 삭제 되니 주의.

test계정의 localhost 계정의 삭제를 원하면

# delete from user where user='test' and host='localhost'; 

이처럼 정확한 조건이 필요하다.

# delete from user where user='test';

쿼리를 날리면 test에 해당하는 2개의 계정이 모두 사라진다.

mysql_7.png

test user의 2개의 host가 삭제가 되었다.

 

데이터베이스(스키마) 권한 제어에는 SQL 명령어 중 DCL (Data Control Language) 이 사용된다.

*DCL 종류에는 GRANT 와 REVOKE 이 있다. (두가지 모두 유효하다.)

# create database test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

//또는

# create schema test  CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

스키마에 접근 가능한 계정을 만들어 보자.

//사용자의 권한을 확인한다

# show grants for test@localhost;

 

//<dbname>.<table> 부분에 *.* 을 넣게 되면 root 계정의 권한과 같아진다.(모든기능)

# grant all privileges on <dbname>.<table> to <userid>@<host> identified by '<password>' ( with <grant option> );

# grant all privileges on test.* to test@localhost identified by '1234567890'; 

//해당 계정 권한을 test database(스키마)에 모든 테이블에서 select, insert, update, delete 할 수 있게 주었다.


# grant select on <dbname>.<table> to <userid>@<host> identified by '<password>' ( with <grant option> );

# grant select on test.* to test@'%' identified by '1234567890';

//해당 계정 권한을 test database(스키마)에 모든 테이블에서 select 할 수 있게 주었다.


//권한 적용 령명

# flush privileges;


//권한 여부 확인

# show grants for test@localhost;


//부여된 권한 삭제

# revoke all on test.* from test@localhost;

    

//권한 삭제 여부 확인

# show grants for test@localhost;

 

//사용자 계정 삭제

# DROP USER [user명]@[server명];

ex) drop user user1@localhost;

 

Root의 권한은 외부에서 접속하는 부분을 추천하지 않는다

먼저 계정 root계정과 같은 외부에서 접속가능한 계정을 만든다.

다음으로 권한에 대한 설정을 해준다.

//계정생성

# create user root@'%' identified by '1234567890(패스워드)';

//관리자의 권한에 해당하는 모든 기능

# GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'root'@'%' ;


//관리자의 권한에 해당하는 grant기능

# GRANT GRANT OPTION ON *.* TO 'root'@'%' ;

 

//한줄로 간단하게 모든기능을 넣자

# grant all privileges on *.* to root@'%' identified by '1234567890(root비밀번호)' with grant option;

  

권한(GRANT)

Privilege Meaning
ALL [PRIVILEGES] GRANT OPTION을 제외한 모든 권한.
ALTER ALTER TABLE을 할 수 있는 권한.
ALTER ROUTINE stored routines을 alter하고 drop할 수 있는 권한.
CREATE database와 table을 생성할 수 있는 권한.
CREATE ROUTINE stored routine을 생성할 수 있는 권한.
CREATE TEMPORARY TABLES CREATE TEMPORARY TABLE을 사용할 수 있는 권한.
CREATE USER CREATE USER, DROP USER, RENAME USER 과 REVOKE ALL PRIVILEGES을 사용할 수 있는 권한.
CREATE VIEW views 를 생성하고 alter할 수 있는 권한.
DELETE DELETE 할 수 있는 권한.
DROP databases, tables, 그리고 views를 drop할 수 있는 권한.
파티션 테이블에 대한 ALTER TABLE ... DROP PARTITAION 구문도 사용할 수 있게 해주는 권한
TRUNCATE TABLE 도 DROP권한이 있어야 사용이 가능.
EVENT Event Scheduler를 위해 event를 사용할 수 있는 권한.
EXECUTE stored routines를 실행할 수 있는 권한.
FILE 서버에 생성된 파일을 읽고 쓸 수 있는 권한.
LOAD DATA INFILE과 SELECT .... INTO OUTFILE 을 사용할 수 있게 해주는 권한.
GRANT OPTION 다른 계정에 grant를 하고 권한을 revoke할 수 있는 권한.
INDEX 인덱스를 생성하고 drop할 수 있는 권한.
INSERT INSERT 구문을 사용할 수 있는 권한.
LOCK TABLES SELECT 권한을 가진 테이블에 LOCK TABLES를 할 수 있는 권한.
PROCESS 모든 프로세스를 볼 수 있게 SHOW PROCESSLIST를 할 수 있는 권한. 이 권한이 없는 경우 자신의 계정에 대한 것만 확인.
PROCESS권한이 있으면 패스워드 세팅 및 수정 가능.
REFERENCES 아직 정의되지 않음.
RELOAD FLUSH구문을 사용할 수 있는 권한.
REPLICATION CLIENT Enable the user to ask where master or slave servers are
REPLICATION SLAVE Enable replication slaves to read binary log events from the master
SELECT SELECT할 수 있는 권한.
SHOW DATABASES 모든 데이터베이스에 대해 SHOW DATABASES를 할 수 있는 것. 이 권한이 없는 경우 자신의 계정에 대한 것만 확인.
SHOW VIEW SHOW CREATE VIEW를 사용할 수 있는 권한.
SHUTDOWN mysqladmin shutdown을 할 수 있는 권한.
SUPER CHANGE MASTER TO,KILL,PURGE BINARY LOGS와 SET GLOBAL문장을 실행할 수 있는 권한.
TRIGGER trigger를 생성하고 drop할 수 있는 권한.
UPDATE UPDATE 할 수 있는 권한.
USAGE no privileges의 Synonym으로 접속만 가능한 계정의 권한.

 

 

추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 34건 1 페이지
  • 34 [ mysql ] auto increment 초기화 방법과 데이터에 적용시키는 방법
  • auto increment 초기화 -&gt; ALTER TABLE [테이블명] auto_increment=1; auto increment 초기화 후 기존 데이터 적용 시키기 -&gt; ALTER TABLE [테이블명] auto_increment=1; -&gt; SET @count = 0; -&gt; UPDATE [테이블] SET [auto_increment 컬럼명] = @count:=@count+1;
  • 웹지기 09-22 2937 0 0 댓글 0
  • 33 [ mysql ] 맥에서 xampp 의 db root 계정 비밀번호 설정
  • [ mysql ] 맥에서 xampp 의 root 계정 비밀번호 설정 터미널 &gt; mysqladmin 파일이 있는 곳으로 이동 &gt;./mysqladmin -uroot PASSWORD '1234' 이렇게 엔터를 치게 되면 원래 접속이 되던 url : localhost/phpmyadmin 의 접속이 끊기게 된다. 정상적으로 접속이 끊기면 config.inc.php 파일을 찾아서 비밀번호를 수정해준다. 파일의 위치로 이동을 하고 &gt;sudo vim c...
  • 웹지기 07-11 3215 0 0 댓글 0
  • 32 [ mysql ] 맥에서 관리자 권한으로 파일 실행
  • 일단 내가 수정하고 싶은 파일은 phpmyadmin 에서 사용되는 config.inc.php 파일이었다. 그래서 sudo vim config.inc.php 를 입력 비밀번호 입력 이렇게 해서 파일을 수정했다. 여기 저기 찾아봤는데 너무 복잡해서 이렇게 하니까 되었다. 다행이도....
  • 웹지기 07-11 3037 0 0 댓글 0
  • 31 [ mysql ] case 기본 사용법
  • CASE 구문은 mysql 4.0 이상부터는 사용이 가능한 구문이고 IF-THEN-ELSE문과 같이 조건이 성립하면 TRUE를 반환하는 형태입니다. 사용하는 방법은 CASE WHEN 조건 THEN 값 WHEN 조건 THEN 값 ELSE 값 END 와 같은 형태로 사용하며 사용가능한 곳은 XXXX로 되어진 SELECT XXXX FROM [table] ORDER BY XXXX 1) 불러올 column에 사용할 경우 SELECT [column1], [column2], CAS...
  • 웹지기 01-19 4111 0 0 댓글 0
  • 30 [ mysql ] order by 특정값을 가지는 행을 우선순위로 정렬
  • 1) SELECT * FROM [table] ORDER BY CASE WHEN [column] IN('N', 'Y') THEN 0 ELSE 1 END, [column]; RESULT의 값이 숫자일 경우 연산가능 CASE WHEN [column]/ 10 IN(5,9) THEN 0 ELSE 1 END, [column] ; [column]의 값이 'N', 'Y' 의 값을 갖는 행을 맨위로 출력하고 나머지를 뒤의 [column]값으로 정렬 2) SELECT * FROM [table] ORD...
  • 웹지기 01-19 4738 0 0 댓글 0
  • 28 [ mysql ] dbeaver 한글 깨짐 현상
  • [ mysql ] dbeaver 한글 깨짐 현상 db의 한글이 정상인데 dbeaver 에서 한글 깨짐 현상이 생긴다면 C:\Program Files\DBeaver\dbeaver.ini파일을 notepad++ 같은 파일로 열어서 최하단에 -Dfile.encoding=UTF-8 코드를 넣고 수정한다 관리자로 파일을 열어야 수정이 가능하다 notepad++같은 경우 수정을 누르면 관리자로 열건지 다시 물어본다. 확인해주면 관리자로 바뀌면서 수정이 가능해 진다. 그리고 dbeaver 다시 시...
  • 웹지기 10-14 16437 0 0 댓글 0
  • 27 [ mysql ] mariadb 설치 후 비밀번호 초기 변경
  • 1. mysqladmin 을 이용하는 방법 &gt;mysqladmin -u root -p password 새비밀번호 &gt;Enter password: 기존비밀번호입력 최초설치시에는 비밀번호가 없으므로 기존 비밀번호에서는 그냥 Enter 새비밀번호에 '1234' 이런형태로 입력하면 비밀번호는 1234가 아니고 '1234' 가 된다 2. mysql update를 이용하는 방법 &gt;mysql -u root -p &gt;Enter password:...
  • 웹지기 05-11 15779 0 0 댓글 0
  • 24 [ mysql ] update를 이용한 일괄계산(이 구문으로 모든데이터의 값을 한번에 바꾼다)
  • update 테이블 set 필드명=(가져올필드명*실수) where 조건구문위와같은 식으로 한번에 여러 필드의 값을 곱하거나 더해서 전체적으로 계산을 쉽게 할 수 있다.가령 185,555 원이 있을때 이 값을 186,000 으로 올리고 싶을때는+++ update 테이블 set 필드명 = (가져올필드명 * 0.001) where 조건구문 &lt;== 을 이용하여 일단 뒤에붙은555라는 숫자를 자동올림으로 올려버린다 값은 186 이된다.이값을 다시 한번 update 구문을 이용하여 정상가격으로...
  • 웹지기 10-01 9166 0 0 댓글 0
  • 23 [ mysql ] datetime의 기본값 입력시 db 오류 현상
  • datetime의 db에 직접입력시[code]ALTER TABLE `테이블명` ADD `추가필드이름` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `추가할 이전 필드`;[/code]이러한 형태로 값을 넣으면 오류(#1067 - Invalid default value for 'wr_datetime')가 발생하여 저장이 되지 않는다하지만, php 에서 변수를 통해서 입력하면 정상적으로 들어가 지기는 한다.[code]$sql = " ALTER...
  • 웹지기 09-27 9218 0 0 댓글 0
  • 22 [ Mysql ] 데이터 형 set 사용법
  • [code]SELECT * FROM 테이블명 WHERE 셋형필드명 LIKE '%value%';SELECT * FROM 테이블명 WHERE FIND_IN_SET('value',필드명) &gt; 0;SELECT * FROM 테이블명 WHERE 필드명='val1,val2';SELECT * FROM 테이블명 WHERE 필드명 &amp; 1;[/code]
  • 웹지기 09-27 4325 0 0 댓글 0
  • 20 [ Mysql ] 내장함수 정리
  • MySQL 내장 함수 정리 1. 숫자 관련 함수▶ ABS(숫자) - 절대값 출력.▶ CEILING(숫자) - 값보다 큰 정수 중 가장 작은 수.▶ FLOOR(숫자) - 값보다 작은 정수 중 가장 큰 수[실수를 무조건 버림(음수일 경우는 제외)].▶ ROUND(숫자,자릿수) - 숫자를 소수점 이하 자릿수에서 반올림.(자릿수는 양수,0,음수를 갖을 수 있다.)▶ TRUNCATE(숫자,자릿수) - 숫자를 소수점 이하 자릿수에서 버림.▶ POW(X,Y) or POWER(X,Y) - X의 Y승▶ MOD ...
  • 웹지기 09-19 7359 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
346
어제
6,711
최대
33,828
전체
8,111,751

그누보드5
Copyright © funyphp.com. All rights reserved.