본문 바로가기
SQL

시큐리티 테이블 SQL

by 미눅스[멘토] 2023. 8. 17.
728x90

--USER = SICURITY가 지정해논 형식 무조건 USERS로 해야함
--사용자(1)
CREATE TABLE USERS(
    USERNAME VARCHAR2(150),
    PASSWORD VARCHAR2(150),
    ENABLED VARCHAR2(1),
    CONSTRAINT PK_USERS PRIMARY KEY(USERNAME)
);

--권한들(N)
--기본키{P,K}와 외래키(F.K)의 자료형(데이터타입)과 크기는 동일해야 함
CREATE TABLE AUTHORITIES(
    USERNAME VARCHAR2(150),
    AUTHORITY VARCHAR2(150),
    CONSTRAINT PK_AUTH PRIMARY KEY(USERNAME, AUTHORITY),
    CONSTRAINT FK_AUTH FOREIGN KEY(USERNAME) REFERENCES USERS(USERNAME)
);

SELECT A.USERNAME, A.PASSWORD, A.ENABLED
FROM USERS A, AUTHORITIES B
WHERE A.USERNAME = B.USERNAME
AND   A.USERNAME= 'admin';

--ANSI표준. INNER JOIN
SELECT A.USERNAME, A.PASSWORD, A.ENABLED
FROM USERS A INNER JOIN AUTHORITIES B ON(A.USERNAME = B.USERNAME)
WHERE A.USERNAME= 'admin';

--ANSI표준.NATURAL JOIN
--기본키 컬럼명과 외래키 컬럼명이 동일해야 함
--조인조건 컬럼은 테이블 ALIAS를 붙이지 않음
SELECT USERNAME, A.PASSWORD, A.ENABLED
FROM USERS A NATURAL JOIN AUTHORITIES B
WHERE USERNAME = 'admin';

'SQL' 카테고리의 다른 글

공통 코드/권한  (0) 2023.09.02
SQL 권한부여  (0) 2023.08.31
SQL 계층형 쿼리(Hierarchical Query)  (0) 2023.08.10
[SQL] 다중 INSERT  (0) 2023.08.10
[SQL] 카멜케이스 변환  (0) 2023.08.09