DBMS/MySQL MySQL Command Line 사용자 추가/삭제, 권한부여
  • 728x90
    반응형

     

     

     

    MySQL to Consol


     

    목차

       

       

      MySQL 사용자 생성

      MySQL 접속 및 user 테이블 확인

       

      # mysql -u root -p

      사용자 계정을 추가하기 전에 먼저 현재 생성된 사용자 계정을 확인한다.

      mysql> use mysql;
      mysql> select host, user from user;

       

      실습

       

       

      사용자 추가(권한 추가)

      사용자 ID 생성

       mysql> create user userid;


      사용자 비밀번호 등록

      mysql> create user userid@localhost identified by 'user password';

       

      사용자 계정에 외부 접근 권한을 부여

      mysql> create user 'userid'@'%' identified by 'user password';

       

      실습

       

      다른 방법으로

      mysql> use mysql;          // mysql database 선택
      mysql> INSERT INTO user(Host, User, Password) VALUES ('localhost', 'userid', password('userpassword'));
      mysql> INSERT INTO user(Host, User, Password) VALUES ('%', 'userid', password('userpassword'));
      mysql> FLUSH privileges;
      or
      mysql> commit;

       

      위 생성된 사용자에게 모든 것을 할 수 있는 권한 주기

      mysql> grant all privileges on *.* to 'userid'@'%';

       

      위 생성된 사용자에게 특정 DB를 관리할 수 있는 권한 주기

      mysql> grant all privileges on dbname.* to 'userid'@'%';

       

      실습

       

      DB관리 권한을 주면서 비밀번호 까지 변경

      mysql> grant all privileges on dbname.* to userid@'%' identified by 'newpassword';

       

      host에 '200.100.%'로 하면 IP 주소가 200.100.X.X 로 시작되는 모든 IP에서 원격 접속을 허용한다는 의미이다.

       

      host에 '200.100.100.50' 으로 하면 IP 주소가 200.100.100.50 인 곳에서만 원격 접속을 허용한다는 의미이다.

       

      특정 쿼리 권한 부여

      mysql> grant select, insert, update on dbname.* to userid@localhost indentified by 'newpassword';

       

      변경된 내용을 반영(권한 적용)

      mysql> flush privileges;

       

       

      사용자에게 부여된 권한 확인

      mysql> show grants for userid@localhost;
      or
      mysql> show grants for userid@'%';
      or
      mysql> show grants for userid@'200.100.100.50';

       

      실습

       

       

      사용자 데이터 베이스 사용자 권한 제거

      dbname.* 의 *은 테이블명을 나타낸다.

      mysql> revoke all on daname.* from userid;       // 모든 권한을 삭제

       

      실습

       

       

      사용자 계정 삭제

      mysql> drop user userid@localhost;
      or
      mysql> drop user userid@'%';

       

      mysql> delete from user where user = 'userid'; 

       

       

       

      데이터 생성

      한글이 깨져서 나오지 않도록 character set을 사용

       

      mysql> create schema UserDatabaseName default character set utf8;
      or
      mysql> create database UserDatabaseName default character set utf8;
      or
      mysql> create database UserDatabaseName default character utf8 COLLATE utf8_general_ci;
      or
      mysql> CREATE DATABASE IF NOT EXISTS UserDatabaseName DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

       

       

       

       

       

       

       

       

       

      728x90
      반응형
    상단으로