diff --git a/apps/user-service/src/main/resources/application-develop.yml b/apps/user-service/src/main/resources/application-develop.yml index 8cae624c..d640ff77 100644 --- a/apps/user-service/src/main/resources/application-develop.yml +++ b/apps/user-service/src/main/resources/application-develop.yml @@ -19,22 +19,6 @@ spring: minimum-idle: 5 pool-name: HikariCP-MyBatis -# # JPA/Hibernate 설정 -# jpa: -# hibernate: -# ddl-auto: update # create, create-drop, update, validate, none -# show-sql: true -# format-sql: true -# database: postgresql -# database-platform: org.hibernate.dialect.PostgreSQLDialect -# properties: -# hibernate: -# format_sql: true -# use_sql_comments: true -# jdbc: -# lob: -# non_contextual_creation: true - mybatis: mapper-locations: classpath:mybatis/mapper/**/*.xml type-aliases-package: com.gltkorea.icebang.dto diff --git a/apps/user-service/src/test/resources/sql/create-schema.sql b/apps/user-service/src/test/resources/sql/create-schema.sql index b9846fca..5980c3ab 100644 --- a/apps/user-service/src/test/resources/sql/create-schema.sql +++ b/apps/user-service/src/test/resources/sql/create-schema.sql @@ -3,12 +3,12 @@ DROP TABLE IF EXISTS "ROLE_PERMISSION"; DROP TABLE IF EXISTS "USER_ROLE"; DROP TABLE IF EXISTS "PERMISSION"; DROP TABLE IF EXISTS "ROLE"; -DROP TABLE IF EXISTS "USER_GROUP"; +DROP TABLE IF EXISTS "USER_GROUP_INFO"; DROP TABLE IF EXISTS "GROUP_INFO"; DROP TABLE IF EXISTS "USER"; --- 사용자 정보 +-- 사용자 정보 (외부 노출 가능성 높음 -> UUID) CREATE TABLE "USER" ( "user_id" VARCHAR(36) NOT NULL, "name" VARCHAR(100) NULL, @@ -34,71 +34,65 @@ CREATE TABLE "USER" ( PRIMARY KEY ("user_id") ); --- 사용자 그룹 정보 CREATE TABLE "GROUP_INFO" ( - "group_id" VARCHAR(36) NOT NULL, + "group_info_id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, "name" VARCHAR(255) NULL, "description" TEXT NULL, "status" VARCHAR(50) NULL, "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("group_id") + "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); --- 사용자-그룹 관계 -CREATE TABLE "USER_GROUP" ( - "user_id" VARCHAR(36) NOT NULL, - "group_id" VARCHAR(36) NOT NULL, - "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("user_id", "group_id"), - FOREIGN KEY ("user_id") REFERENCES "USER" ("user_id"), - FOREIGN KEY ("group_id") REFERENCES "GROUP_INFO" ("group_id") -); - --- 역할 정보 CREATE TABLE "ROLE" ( - "role_id" VARCHAR(36) NOT NULL, + "role_id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, "name" VARCHAR(50) NULL, "code" VARCHAR(50) NULL UNIQUE, "description" VARCHAR(255) NULL, "status" VARCHAR(50) NULL, "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("role_id") + "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); --- 권한 정보 CREATE TABLE "PERMISSION" ( - "permission_id" VARCHAR(36) NOT NULL, + "permission_id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, "name" VARCHAR(50) NULL, "code" VARCHAR(50) NULL UNIQUE, "resource" VARCHAR(50) NULL, "action" VARCHAR(50) NULL, "description" VARCHAR(255) NULL, "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("permission_id") + "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE "USER_GROUP_INFO" ( + "user_group_info_id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + "user_id" VARCHAR(36) NOT NULL, -- USER 테이블 참조 + "group_info_id" BIGINT NOT NULL, -- GROUP_INFO 테이블 참조 + "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY ("user_id") REFERENCES "USER" ("user_id"), + FOREIGN KEY ("group_info_id") REFERENCES "GROUP_INFO" ("group_info_id"), + UNIQUE ("user_id", "group_info_id") ); --- 사용자-역할 관계 CREATE TABLE "USER_ROLE" ( - "user_id" VARCHAR(36) NOT NULL, - "role_id" VARCHAR(36) NOT NULL, + "user_role_id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + "user_id" VARCHAR(36) NOT NULL, -- USER 테이블 참조 + "role_id" BIGINT NOT NULL, -- ROLE 테이블 참조 "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("user_id", "role_id"), FOREIGN KEY ("user_id") REFERENCES "USER" ("user_id"), - FOREIGN KEY ("role_id") REFERENCES "ROLE" ("role_id") + FOREIGN KEY ("role_id") REFERENCES "ROLE" ("role_id"), + UNIQUE ("user_id", "role_id") ); --- 역할-권한 관계 CREATE TABLE "ROLE_PERMISSION" ( - "role_id" VARCHAR(36) NOT NULL, - "permission_id" VARCHAR(36) NOT NULL, + "role_permission_id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + "role_id" BIGINT NOT NULL, -- ROLE 테이블 참조 + "permission_id" BIGINT NOT NULL, -- PERMISSION 테이블 참조 "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("role_id", "permission_id"), FOREIGN KEY ("role_id") REFERENCES "ROLE" ("role_id"), - FOREIGN KEY ("permission_id") REFERENCES "PERMISSION" ("permission_id") + FOREIGN KEY ("permission_id") REFERENCES "PERMISSION" ("permission_id"), + UNIQUE ("role_id", "permission_id") ); \ No newline at end of file diff --git a/apps/user-service/src/test/resources/sql/insert-user-data.sql b/apps/user-service/src/test/resources/sql/insert-user-data.sql index 9a190b4e..95a24551 100644 --- a/apps/user-service/src/test/resources/sql/insert-user-data.sql +++ b/apps/user-service/src/test/resources/sql/insert-user-data.sql @@ -1,39 +1,38 @@ --- 데이터 삽입 INSERT INTO "USER" ("user_id", "name", "email", "password", "phone_number", "type", "status", "joined_at") VALUES ('86b2414f-8e4d-4c3e-953e-1b6c7003c271', '홍길동', 'hong.gildong@example.com', 'hashed_password_1', '010-1234-5678', 'INDIVIDUAL', 'ACTIVE', NOW()), ('92d04a8b-185d-4f1b-85d1-9650d99d1234', '김철수', 'kim.chulsu@example.com', 'hashed_1b590e829a28', '010-9876-5432', 'INDIVIDUAL', 'ACTIVE', NOW()); -INSERT INTO "GROUP_INFO" ("group_id", "name", "description", "status") +INSERT INTO "GROUP_INFO" ("name", "description", "status") VALUES - ('0b5c1c4e-5e2a-438d-8c1d-1d2a3e3b4d5a', '개발팀', '애플리케이션 개발 그룹', 'ACTIVE'), - ('5c3f7b2c-8a1e-45a8-9d2a-7e7f6a8e9d2b', '기획팀', '프로젝트 기획 그룹', 'ACTIVE'); + ('개발팀', '애플리케이션 개발 그룹', 'ACTIVE'), -- ID 1로 생성됨 + ('기획팀', '프로젝트 기획 그룹', 'ACTIVE'); -- ID 2로 생성됨 -INSERT INTO "USER_GROUP" ("user_id", "group_id") +INSERT INTO "USER_GROUP_INFO" ("user_id", "group_info_id") VALUES - ('86b2414f-8e4d-4c3e-953e-1b6c7003c271', '0b5c1c4e-5e2a-438d-8c1d-1d2a3e3b4d5a'), - ('92d04a8b-185d-4f1b-85d1-9650d99d1234', '5c3f7b2c-8a1e-45a8-9d2a-7e7f6a8e9d2b'); + ('86b2414f-8e4d-4c3e-953e-1b6c7003c271', 1), -- 홍길동 -> 개발팀 + ('92d04a8b-185d-4f1b-85d1-9650d99d1234', 2); -- 김철수 -> 기획팀 -INSERT INTO "ROLE" ("role_id", "name", "code", "description", "status") +INSERT INTO "ROLE" ("name", "code", "description", "status") VALUES - ('e2c3a5f9-8d1a-4b72-9c3f-4e3b2c1d8a1e', '관리자', 'ADMIN', '모든 권한을 가진 역할', 'ACTIVE'), - ('d1a2c3b4-5f6e-7d8c-9a0b-1c2d3e4f5a6b', '일반 사용자', 'USER', '기본 권한을 가진 역할', 'ACTIVE'); + ('관리자', 'ADMIN', '모든 권한을 가진 역할', 'ACTIVE'), -- ID 1로 생성됨 + ('일반 사용자', 'USER', '기본 권한을 가진 역할', 'ACTIVE'); -- ID 2로 생성됨 -INSERT INTO "PERMISSION" ("permission_id", "name", "code", "resource", "action", "description") +INSERT INTO "PERMISSION" ("name", "code", "resource", "action", "description") VALUES - ('c3f5a2b8-7e1d-4c9a-8b1d-2e3f4a5b6c7d', '사용자 정보 읽기', 'USER_READ', 'USER', 'READ', '사용자 정보 조회 권한'), - ('b5c6a7d8-1e2f-3a4b-5c6d-7e8f9a0b1c2d', '사용자 정보 수정', 'USER_WRITE', 'USER', 'WRITE', '사용자 정보 수정 권한'), - ('a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d', '로그인', 'AUTH_LOGIN', 'AUTH', 'LOGIN', '로그인 권한'); + ('사용자 정보 읽기', 'USER_READ', 'USER', 'READ', '사용자 정보 조회 권한'), -- ID 1로 생성됨 + ('사용자 정보 수정', 'USER_WRITE', 'USER', 'WRITE', '사용자 정보 수정 권한'), -- ID 2로 생성됨 + ('로그인', 'AUTH_LOGIN', 'AUTH', 'LOGIN', '로그인 권한'); -- ID 3으로 생성됨 INSERT INTO "USER_ROLE" ("user_id", "role_id") VALUES - ('86b2414f-8e4d-4c3e-953e-1b6c7003c271', 'e2c3a5f9-8d1a-4b72-9c3f-4e3b2c1d8a1e'), - ('92d04a8b-185d-4f1b-85d1-9650d99d1234', 'd1a2c3b4-5f6e-7d8c-9a0b-1c2d3e4f5a6b'); + ('86b2414f-8e4d-4c3e-953e-1b6c7003c271', 1), -- 홍길동 -> 관리자 + ('92d04a8b-185d-4f1b-85d1-9650d99d1234', 2); -- 김철수 -> 일반 사용자 INSERT INTO "ROLE_PERMISSION" ("role_id", "permission_id") VALUES - ('e2c3a5f9-8d1a-4b72-9c3f-4e3b2c1d8a1e', 'c3f5a2b8-7e1d-4c9a-8b1d-2e3f4a5b6c7d'), - ('e2c3a5f9-8d1a-4b72-9c3f-4e3b2c1d8a1e', 'b5c6a7d8-1e2f-3a4b-5c6d-7e8f9a0b1c2d'), - ('e2c3a5f9-8d1a-4b72-9c3f-4e3b2c1d8a1e', 'a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d'), - ('d1a2c3b4-5f6e-7d8c-9a0b-1c2d3e4f5a6b', 'c3f5a2b8-7e1d-4c9a-8b1d-2e3f4a5b6c7d'), - ('d1a2c3b4-5f6e-7d8c-9a0b-1c2d3e4f5a6b', 'a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d'); \ No newline at end of file + (1, 1), -- 관리자 -> 사용자 정보 읽기 + (1, 2), -- 관리자 -> 사용자 정보 수정 + (1, 3), -- 관리자 -> 로그인 + (2, 1), -- 일반 사용자 -> 사용자 정보 읽기 + (2, 3); -- 일반 사용자 -> 로그인 \ No newline at end of file diff --git a/docker/local/init-scripts/create-schema.sql b/docker/local/init-scripts/create-schema.sql index b9846fca..5980c3ab 100644 --- a/docker/local/init-scripts/create-schema.sql +++ b/docker/local/init-scripts/create-schema.sql @@ -3,12 +3,12 @@ DROP TABLE IF EXISTS "ROLE_PERMISSION"; DROP TABLE IF EXISTS "USER_ROLE"; DROP TABLE IF EXISTS "PERMISSION"; DROP TABLE IF EXISTS "ROLE"; -DROP TABLE IF EXISTS "USER_GROUP"; +DROP TABLE IF EXISTS "USER_GROUP_INFO"; DROP TABLE IF EXISTS "GROUP_INFO"; DROP TABLE IF EXISTS "USER"; --- 사용자 정보 +-- 사용자 정보 (외부 노출 가능성 높음 -> UUID) CREATE TABLE "USER" ( "user_id" VARCHAR(36) NOT NULL, "name" VARCHAR(100) NULL, @@ -34,71 +34,65 @@ CREATE TABLE "USER" ( PRIMARY KEY ("user_id") ); --- 사용자 그룹 정보 CREATE TABLE "GROUP_INFO" ( - "group_id" VARCHAR(36) NOT NULL, + "group_info_id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, "name" VARCHAR(255) NULL, "description" TEXT NULL, "status" VARCHAR(50) NULL, "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("group_id") + "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); --- 사용자-그룹 관계 -CREATE TABLE "USER_GROUP" ( - "user_id" VARCHAR(36) NOT NULL, - "group_id" VARCHAR(36) NOT NULL, - "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("user_id", "group_id"), - FOREIGN KEY ("user_id") REFERENCES "USER" ("user_id"), - FOREIGN KEY ("group_id") REFERENCES "GROUP_INFO" ("group_id") -); - --- 역할 정보 CREATE TABLE "ROLE" ( - "role_id" VARCHAR(36) NOT NULL, + "role_id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, "name" VARCHAR(50) NULL, "code" VARCHAR(50) NULL UNIQUE, "description" VARCHAR(255) NULL, "status" VARCHAR(50) NULL, "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("role_id") + "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); --- 권한 정보 CREATE TABLE "PERMISSION" ( - "permission_id" VARCHAR(36) NOT NULL, + "permission_id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, "name" VARCHAR(50) NULL, "code" VARCHAR(50) NULL UNIQUE, "resource" VARCHAR(50) NULL, "action" VARCHAR(50) NULL, "description" VARCHAR(255) NULL, "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("permission_id") + "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE "USER_GROUP_INFO" ( + "user_group_info_id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + "user_id" VARCHAR(36) NOT NULL, -- USER 테이블 참조 + "group_info_id" BIGINT NOT NULL, -- GROUP_INFO 테이블 참조 + "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY ("user_id") REFERENCES "USER" ("user_id"), + FOREIGN KEY ("group_info_id") REFERENCES "GROUP_INFO" ("group_info_id"), + UNIQUE ("user_id", "group_info_id") ); --- 사용자-역할 관계 CREATE TABLE "USER_ROLE" ( - "user_id" VARCHAR(36) NOT NULL, - "role_id" VARCHAR(36) NOT NULL, + "user_role_id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + "user_id" VARCHAR(36) NOT NULL, -- USER 테이블 참조 + "role_id" BIGINT NOT NULL, -- ROLE 테이블 참조 "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("user_id", "role_id"), FOREIGN KEY ("user_id") REFERENCES "USER" ("user_id"), - FOREIGN KEY ("role_id") REFERENCES "ROLE" ("role_id") + FOREIGN KEY ("role_id") REFERENCES "ROLE" ("role_id"), + UNIQUE ("user_id", "role_id") ); --- 역할-권한 관계 CREATE TABLE "ROLE_PERMISSION" ( - "role_id" VARCHAR(36) NOT NULL, - "permission_id" VARCHAR(36) NOT NULL, + "role_permission_id" BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, + "role_id" BIGINT NOT NULL, -- ROLE 테이블 참조 + "permission_id" BIGINT NOT NULL, -- PERMISSION 테이블 참조 "created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY ("role_id", "permission_id"), FOREIGN KEY ("role_id") REFERENCES "ROLE" ("role_id"), - FOREIGN KEY ("permission_id") REFERENCES "PERMISSION" ("permission_id") + FOREIGN KEY ("permission_id") REFERENCES "PERMISSION" ("permission_id"), + UNIQUE ("role_id", "permission_id") ); \ No newline at end of file diff --git a/docker/local/init-scripts/insert-user-data.sql b/docker/local/init-scripts/insert-user-data.sql index 9a190b4e..95a24551 100644 --- a/docker/local/init-scripts/insert-user-data.sql +++ b/docker/local/init-scripts/insert-user-data.sql @@ -1,39 +1,38 @@ --- 데이터 삽입 INSERT INTO "USER" ("user_id", "name", "email", "password", "phone_number", "type", "status", "joined_at") VALUES ('86b2414f-8e4d-4c3e-953e-1b6c7003c271', '홍길동', 'hong.gildong@example.com', 'hashed_password_1', '010-1234-5678', 'INDIVIDUAL', 'ACTIVE', NOW()), ('92d04a8b-185d-4f1b-85d1-9650d99d1234', '김철수', 'kim.chulsu@example.com', 'hashed_1b590e829a28', '010-9876-5432', 'INDIVIDUAL', 'ACTIVE', NOW()); -INSERT INTO "GROUP_INFO" ("group_id", "name", "description", "status") +INSERT INTO "GROUP_INFO" ("name", "description", "status") VALUES - ('0b5c1c4e-5e2a-438d-8c1d-1d2a3e3b4d5a', '개발팀', '애플리케이션 개발 그룹', 'ACTIVE'), - ('5c3f7b2c-8a1e-45a8-9d2a-7e7f6a8e9d2b', '기획팀', '프로젝트 기획 그룹', 'ACTIVE'); + ('개발팀', '애플리케이션 개발 그룹', 'ACTIVE'), -- ID 1로 생성됨 + ('기획팀', '프로젝트 기획 그룹', 'ACTIVE'); -- ID 2로 생성됨 -INSERT INTO "USER_GROUP" ("user_id", "group_id") +INSERT INTO "USER_GROUP_INFO" ("user_id", "group_info_id") VALUES - ('86b2414f-8e4d-4c3e-953e-1b6c7003c271', '0b5c1c4e-5e2a-438d-8c1d-1d2a3e3b4d5a'), - ('92d04a8b-185d-4f1b-85d1-9650d99d1234', '5c3f7b2c-8a1e-45a8-9d2a-7e7f6a8e9d2b'); + ('86b2414f-8e4d-4c3e-953e-1b6c7003c271', 1), -- 홍길동 -> 개발팀 + ('92d04a8b-185d-4f1b-85d1-9650d99d1234', 2); -- 김철수 -> 기획팀 -INSERT INTO "ROLE" ("role_id", "name", "code", "description", "status") +INSERT INTO "ROLE" ("name", "code", "description", "status") VALUES - ('e2c3a5f9-8d1a-4b72-9c3f-4e3b2c1d8a1e', '관리자', 'ADMIN', '모든 권한을 가진 역할', 'ACTIVE'), - ('d1a2c3b4-5f6e-7d8c-9a0b-1c2d3e4f5a6b', '일반 사용자', 'USER', '기본 권한을 가진 역할', 'ACTIVE'); + ('관리자', 'ADMIN', '모든 권한을 가진 역할', 'ACTIVE'), -- ID 1로 생성됨 + ('일반 사용자', 'USER', '기본 권한을 가진 역할', 'ACTIVE'); -- ID 2로 생성됨 -INSERT INTO "PERMISSION" ("permission_id", "name", "code", "resource", "action", "description") +INSERT INTO "PERMISSION" ("name", "code", "resource", "action", "description") VALUES - ('c3f5a2b8-7e1d-4c9a-8b1d-2e3f4a5b6c7d', '사용자 정보 읽기', 'USER_READ', 'USER', 'READ', '사용자 정보 조회 권한'), - ('b5c6a7d8-1e2f-3a4b-5c6d-7e8f9a0b1c2d', '사용자 정보 수정', 'USER_WRITE', 'USER', 'WRITE', '사용자 정보 수정 권한'), - ('a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d', '로그인', 'AUTH_LOGIN', 'AUTH', 'LOGIN', '로그인 권한'); + ('사용자 정보 읽기', 'USER_READ', 'USER', 'READ', '사용자 정보 조회 권한'), -- ID 1로 생성됨 + ('사용자 정보 수정', 'USER_WRITE', 'USER', 'WRITE', '사용자 정보 수정 권한'), -- ID 2로 생성됨 + ('로그인', 'AUTH_LOGIN', 'AUTH', 'LOGIN', '로그인 권한'); -- ID 3으로 생성됨 INSERT INTO "USER_ROLE" ("user_id", "role_id") VALUES - ('86b2414f-8e4d-4c3e-953e-1b6c7003c271', 'e2c3a5f9-8d1a-4b72-9c3f-4e3b2c1d8a1e'), - ('92d04a8b-185d-4f1b-85d1-9650d99d1234', 'd1a2c3b4-5f6e-7d8c-9a0b-1c2d3e4f5a6b'); + ('86b2414f-8e4d-4c3e-953e-1b6c7003c271', 1), -- 홍길동 -> 관리자 + ('92d04a8b-185d-4f1b-85d1-9650d99d1234', 2); -- 김철수 -> 일반 사용자 INSERT INTO "ROLE_PERMISSION" ("role_id", "permission_id") VALUES - ('e2c3a5f9-8d1a-4b72-9c3f-4e3b2c1d8a1e', 'c3f5a2b8-7e1d-4c9a-8b1d-2e3f4a5b6c7d'), - ('e2c3a5f9-8d1a-4b72-9c3f-4e3b2c1d8a1e', 'b5c6a7d8-1e2f-3a4b-5c6d-7e8f9a0b1c2d'), - ('e2c3a5f9-8d1a-4b72-9c3f-4e3b2c1d8a1e', 'a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d'), - ('d1a2c3b4-5f6e-7d8c-9a0b-1c2d3e4f5a6b', 'c3f5a2b8-7e1d-4c9a-8b1d-2e3f4a5b6c7d'), - ('d1a2c3b4-5f6e-7d8c-9a0b-1c2d3e4f5a6b', 'a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d'); \ No newline at end of file + (1, 1), -- 관리자 -> 사용자 정보 읽기 + (1, 2), -- 관리자 -> 사용자 정보 수정 + (1, 3), -- 관리자 -> 로그인 + (2, 1), -- 일반 사용자 -> 사용자 정보 읽기 + (2, 3); -- 일반 사용자 -> 로그인 \ No newline at end of file