암호 설정
ROOT 사용자
SET PASSWORD FOR 'root'@'localhost' = PASSWORD ('0000qwerty');
// root : 루트 사용자
// localhost : 소프트웨어 실행위치
계정생성
CREATE USER jsm
IDENTIFIED BY '000asd';
// 새로운 계정과 비밀번호 생성
권한부여
GRANT SELECT ON my_table
TO jsm;
// jsm계정에 my_table 테이블의 SELECT 권한 부여
GRANT INSERT ON my_table
TO jsm, jsm2;
GRANT INSERT, DELETE ON my_table
TO jsm
WITH GRANT OPTION;
// INSERT,DELETE의 권한을 부여 할 수 있는 권한을 부여..
GRANT SELECT(last_name) ON my_table
TO jsm;
GRANT ALL ON my_table
TO jsm;
//모든 권한 부여
GRANT INSERT ON db_test.*
TO jsm;
// .*는 데이터베이스의 모든 테이블의 INSERT권한 부여
권한취소
REVOKE SELECT ON my_table
FROM jsm;
REVOKE GRANT OPTION ON
SELECT ON my_table
FROM jsm;
// SELECT의 GRANT OPTION만 권한 취소
// 즉 권한을 주는 권한만 없애고 SELECT의 권한은 유지
REVOKE SELECT ON my_table
FROM jsm CASCADE;
// CASCADE : jsm이 권한을 준 모든 대상을 가리킴
// 즉, jsm의 권한과 연결된 대상의 권한을 전부 취소
REVOKE SELECT ON my_table
FROM jsm RESTRICT;
// RESTRICT : jsm과 연결된 권한이 있으면 제거할 시 에러 발생
// 연결된 권한의 유무를 알 수 있다.
역할(ROLE)
- 그룹을 만들어서 데이터베이스를 관리 할 수 있다.
CREATE ROLE role_update;
// role_update라는 이름의 역할 생성
GRANT INSERT, DELETE ON my_table
TO role_update;
// ROLE에 권한 부여
GRANT role_update
TO jsm;
// jsm계정에게 role_update의 권한을 부여
GRANT role_update
TO jsm
WITH ADMIN OPTION;
// 역할을 부여하는 권한을 부여
REVOKE role_update
FROM jsm
CASCADE;
// 연결된 모든 권한 취소
REVOKE role_update
FROM jsm
RESTRICT;
// 연결된 계정이 있으면 취소 불가 에러 출력
계정생성과 권한부여의 결합
CREATE USER jsm
IDENTIFIED BY '0000';
+
GRANT ALL ON my_table
TO jsm;
GRANT ALL ON my_table
TO jsm
IDENTIFIED BY '0000';
// 위의 두 코드를 합한 코드