Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- CLASS
- react native
- Filter
- elementAt
- union
- recyclerview
- collection
- docker
- class component
- Swift
- AWS
- ReactNative
- Generic
- map
- Service
- ConstraintLayout
- MINUS
- animation
- vuex
- list
- lifecycle
- Kotlin
- function
- LiveData
- Interface
- mongoose
- enum
- docker-compose
- Foreign Key
- 생명주기
Archives
- Today
- Total
개발 일기
MYSQL 역할(Role) 본문
Mysql 역할은 아래와 같이 사용 예시를 통해서 간단하게 알수있습니다.
mysql> CREATE ROLE role_one, role_two;
먼저 다음과 같이 빈 껍데기만 있는 역할을 두개를 정의 했습니다.
이제 GRANT 명령으로 실질적인 권한을 부여할수가 있습니다. 아래와 같이 권한을 부여하는 예시입니다.
GRANT SELECT ON hotel.* TO role_one;
GRANT INSERT, UPDATE, DELETE ON hotel.* TO role_two
첫번째 role_one 역할에는 hotel이라는 DB에 모든 객체에 대해 읽기 권한을 부여했습니다.
두번째 role_two 역할에는 hotel이라는 DB에 모든 객체에 대해 변경 권한을 부여했습니다.
이제 이 역할을 사용을 할려면 먼저 CREATE USER 명령으로 유저를 생성해야합니다.
CREATE USER reader@'127.0.0.1' IDENTIFIED BY 'password';
CREATE USER writer@'127.0.0.1' IDENTIFIED BY 'password';
두명의 유저를 생성하였습니다.
이제 이 유저들에게 역할을 부여하도록 하겠습니다.
GRANT role_one TO reader@'127.0.0.1';
GRANT role_one, role_two TO writer@'127.0.0.1';
이제 해당 계정에 역할을 활성화 시켜주셔야합니다.
set role 'role_one' , 'role_two';
따라서 위와 같이 활성화를 시켜준다음 아래와 같이 확인해 볼수가 있습니다.
select current_role();
하지만 계정이 로그아웃했다가 다시 로그인 했을 경우에는 역할이 활성화되어있지 않는 상태를 볼수 있을겁니다.
아래와 같이 역할을 자동으로 활성화 해주는 시스템 변수를 설정을 해야합니다.
set global activate_all_roles_on_login=ON;
'DB > mysql' 카테고리의 다른 글
TRUNCATE + FOREIGN KEY (0) | 2020.05.18 |
---|---|
Union ? (0) | 2020.05.02 |
GROUP BY ? (0) | 2020.05.01 |
MYSQL JOIN ? (0) | 2020.04.30 |
CREATE View? (0) | 2020.04.29 |
Comments