데이터베이스(4)
-
Read Phenomena in Transactions
Read Phenomena 먼저 트랜잭션의 격리 수준(isolation level)이란 어떤 트랜잭션이 데이터를 조회할 때,다른 트랜잭션이 해당 데이터를 변경했을 때 - 영향을 얼마나 가져갈 것이냐 하는 것입니다. 쉽게 말해 내가 A라는 데이터를 읽고 난 후, 다른 사람이 해당 데이터를 수정했을 때다시 A 데이터를 읽으면 처음에 읽었던 것을 읽을 것이냐, 아니면 수정된 걸 읽을 것이냐 하는 수준입니다. ANSI, ISO/IEC의 SQL-92 표준을 보면 격리 수준 4가지와 이에 따른 현상 3가지가 있습니다.격리 수준으로는READ UNCOMMITTEDREAD COMMITEDREPEATABLE READSERIALIZABLE이 있고, 현상으로는 Dirty readNon-repeatable readPhantom..
2024.06.04 -
METHOD. 사용자 생성 및 권한 추가하기
Create Role use 데이터베이스 db.createRole( { role: "이름", privileges: [ { resource: { db: "데이터베이스 이름", collection: "" }, actions: [ "find", "update", "insert", "remove" ] } ], roles: [] } ) 아래 참조의 createRole() 을 보면 각 필드가 어떤 의미인지 상세하게 알 수 있다. 몇 가지 주요한 사항을 말해보면, collection에 빈 값을 주면 해당 데이터베이스의 모든 컬렉션에 적용하겠다라는 의미가 되고, roles에는 이전에 만든 role을 상속 받거나 할 수 있다. Create User db.createUser({ user: "사용자 이름", pwd: "패스..
2023.04.30 -
QUERY. 사용자 생성 및 권한 추가하기
Create User CREATE USER '사용자' IDENTIFIED BY '패스워드' COMMENT '설명'; 사용자는 '이름'@'주소'처럼 한정할 수도 있다. Grant User 그냥 지정해서 줘도 되지만, 직접 role을 만들어 지정해주는 것이 좋다. CREATE ROLE 이름; GRANT ALL PRIVILEGES ON 데이터베이스.테이블 TO 사용자(또는 롤); 만든 role을 사용자에게 부여하고 싶다면 GRANT '롤 이름' TO '사용자'; SET DEFAULT ROLE ALL TO '사용자'; 확인은 해당 사용자로 접속하여 아래 쿼리를 실행하면 된다. SELECT CURRENT_ROLE(); 표현식 GRANT priv_type [(column_list)] [, priv_type [(co..
2023.04.30 -
QUERY. 데이터베이스 생성
Create Database CREATE DATABASE 이름; 표현식 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option] ... create_option: [DEFAULT] { CHARACTER SET [=] charset_name | COLLATE [=] collation_name | ENCRYPTION [=] {'Y' | 'N'} } References MySQL :: MySQL 8.0 Reference Manual :: 13.1.12 CREATE DATABASE Statement 13.1.12 CREATE DATABASE Statement CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name ..
2023.04.30