ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL - USER 관리, DCL
    SQL 2022. 10. 7. 11:28

    *데이터베이스(DB)

    데이터를 영구적으로 저장하기 위한 데이터 저장소

     

    show databases : 데이터베이스 보기

    create database [DB] : 데이터베이스 생성

    use [DB ] : 해당 DB 사용하기

     

    *유저 생성

    create user [사용자 ID]@[이용 가능 IP] identified by [비밀번호];

     

    *권한 부여 및 회수

    특정 사용자에게 권한을 부여 및 회수할 수 있다.

     

    부여 : grant [권한] on [데이터베이스.테이블] to [사용자 ID];

    회수 : revoke [권한] on [데이터베이스.테이블] from [사용자 ID];

     

    *권한의 종류(아주 일부)

    all privileges : grant option을 제외한 모든 권한

    select : 조회 권한 특정 명령어를 권한으로 부여할 수도 있다. (create, drop, update, delete ..)

    grant option : 권한을 부여해 줄 수 있는 권한 (내가 가진 것 이상으로 부여할 수 없다.)

     

    *유저 비밀번호 변경

    set password for [사용자 ID] = password([변경할 비밀번호]);

     

    *유저 삭제

    drop user [사용자 ID];

     

    show databases; -- 데이터베이스 목록 보기
    create database mydb; -- 데이터베이스 생성
    use mydb; -- mydb 데이터베이스 사용
    
    /*1. 유저 생성*/
    -- CREATE USER [유저이름]@[이용 가능한 IP] IDENTIFIED BY [비밀번호];
    -- web_user는 어느 IP에서나 붙을 수 있고 비밀 번호는 pass다.
    create user 'web_user'@'%' IDENTIFIED by 'pass';
    
    -- dba_user는 192.168로 시작하는 IP에서 붙을 수 있고 비밀번호는 pass다.
    create user 'dba_user'@'192.168.%' IDENTIFIED by 'pass';
    
    -- user002는 192.168.8.250만 붙을 수 있고 비밀번호는 pass다.
    create user 'user002'@'192.168.8.250' IDENTIFIED by 'pass';
    
    -- 생성된 유저 확인
    select * from mysql.user;
    
    /*2. 권한 부여 및 회수*/
    -- 권한 부여
    -- GRANT [권한] ON [데이터베이스.테이블] TO [사용자ID];
    
    /* 권한의 종류(아주 일부)
     * ALL PRIVILEGES : GRANT OPTION을 제외한 모든 권한 
     * SELECT : 조회 권한 - 특정 명령어를 권한으로 부여할 수도 있다.(CREATE, DROP, UPDATE, DELETE 등..)
     * GRANT OPTION : 권한을 부여해 줄 수 있는 권한(내가 가진 것 이상으로 부여할 수 없다.)
     */
    -- web_user에게 ALL PRIVILEGES 권한을 모든 데이터베이스, 모든 테이블에 사용할 수 있도록 해준다.
    grant all privileges on *.* to 'web_user';
    
    -- dba_user에게 mysql 데이터베이스의 모든 테이블에서 사용할 수 있는 SELECT 명령어 권한을 준다.
    grant SELECT on mysql.* to 'dba_user'@'192.168.%';
    
    -- user002에게 모든 데이터베이스, 모든 테이블에서 사용할 수 있는 select, insert, update, delete 명령어 권한을 준다.
    grant select, insert, update, delete on *.* to 'user002'@'192.168.8.250';
    
    -- 권한 여부 확인
    select * from mysql.user;
    
    -- 권한 회수
    -- REVOKE [권한] ON [데이터베이스.테이블] FROM [사용자ID];
    -- user002에게 select, insert, delete 권한을 회수해 온다.
    revoke select, insert, delete on *.* from 'user002'@'192.168.8.250';
    
    /*3. 비밀번호 변경*/
    -- SET PASSWORD FOR [사용자ID] = PASSWORD([변경할 비밀번호]);
    set password for 'user002'@'192.168.8.250' = password('1234');
    
    /*4. 유저 삭제*/
    -- DROP USER [사용자ID];
    drop user 'user002'@'192.168.8.250';
    drop user 'dba_user'@'192.168.%';
    
    select * from mysql.user;

     

    'SQL' 카테고리의 다른 글

    SQL - 제약조건  (0) 2022.12.10
    SQL - Transaction  (0) 2022.12.10
    SQL - select문에서의 여러 사용법  (0) 2022.10.07
    SQL - DML  (0) 2022.10.07
    SQL - DDL  (0) 2022.10.07
Designed by Tistory.