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
    반응형
상단으로