REVOKE 권한을 회수한다. 해당 실습을 위해 sys 사용자로 접속해보자. 앞에서 만든 demo 사용자의 테이블 생성 권한을 회수한다. REVOKE create table FROM demo; 다시 demo 사용자로 접속 후 다른 테이블을 생성하려고 하면 해당 권한이 없다고 뜬다. 현재 demo 사용자인데 hr 소유의 employees 테이블의 조작을 요청하면 오류가 난다! demo가 가진 권한에서는 employees 테이블을 조작할 권한이 없다는 뜻 hr이 demo에게 employees 테이블의 select, update 권한을 부여한다. demo 사용자에 employees 테이블의 업데이트 권한을 회수해서 업데이트가 안되는 상황(권한 부족 오류) Object 권한 회수 REVOKEselect ONem..
SQL 구문 - DQL 데이터질의어 : select - DML 데이터조작어 : insert, update, delete (merge) - DDL 데이터정의어 : create, alter, drop, truncate - DCL 데이터제어어 : grant, revoke GRANT 권한을 부여한다. create user 권한을 가진 소유자가 DB에 hr같은 User를 생성할 수 있다. User 생성 시 유저명과 패스워드명을 기본으로 적절한 권한을 부여해주어야 한다. 평상 시에는 hr 사용자로만 이용했었는데 권한 부여 실습을 하기 위해 sys 사용자로 권한을 바꾼다(hr에는 권한부여 권한이 없기 때문) conn sys/oracle as sysdba demo라는 유저를 만들어본다. 편의상 비밀번호도 demo로 지..
jstl에서 조건에 따른 분기를 처리할 수 있는 태그 , 1. 태그 test 속성내의 EL 의 결과가 참이면 실행됩니다. else 구문은 없습니다. 위의 코드는 변수 name의 값이 "홍길동" 이면 출력합니다. 태그에 사용될 수 있는 속성은 다음 세 가지 입니다. - test : 필수 속성으로 속성값으로 EL 비교식을 가집니다. - var : 조건 결과를 저장할 변수를 지정합니다. - scope : 조건 결과를 저장할 변수의 저장 scope을 지정합니다. 위 코드는 test 속성의 결과를 nameHong 변수 이름으로 session 영역에 저장합니다. 동일 세션의 다른 페이지에서 결과를 찾을 수 있습니다. 2. test 속성에 사용될 비교 연산자 * eq(==) : 문자열 또는 숫자가 같으면 참, nul..
오류노트까지는 아니지만 오류노트에 있던 걸 바탕으로 편하게 쓸 수있는 방법을 알았기 때문에 같은 카테고리에 넣었다. 이전에 작성한 스네이크 표기법을 카멜케이스 표기법으로 자동 변환하는 세팅하는 포스트에서 이어진다. https://kijuk.tistory.com/155 [Spring] insert는 되는데 select 안될 때 로그인 구현하면서 select로 로그인이 안되는 상황에 발생했다. 개발초기라 DB와 연결이 안된 줄 알았는데 회원가입할 때 쓰이는 insert 구문은 제대로 돼서 select의 문제인가 하고 있었다. 로그를 kijuk.tistory.com 카멜케이스 자동 세팅 자체는 좋은데 DB 컬럼명을 일일이 바꾸려니 오타도 나고 값이 많아 좀 더 쉽게 할 수 있는 방법이 없을까 찾아봤다. [ H..
로그인 구현하면서 select로 로그인이 안되는 상황에 발생했다. 개발초기라 DB와 연결이 안된 줄 알았는데 회원가입할 때 쓰이는 insert 구문은 제대로 돼서 select의 문제인가 하고 있었다. 로그를 출력하면 로그인 메서드를 실행까지는 하지만 정작 값을 가져오면 null이 나와서 쿼리문을 조작해봤다. 로그인을 실행하는 userCheck 쿼리문 SELECT * FROM USER_INFO WHERE USER_ID= #{userId} AND USER_PASS= #{userPass} 해당 쿼리문에 컬럼 alias를 DTO 값으로 바꾸니 들어간다! SELECT USER_ID as userId FROM USER_INFO WHERE USER_ID= #{userId} AND USER_PASS= #{userPas..
Controller에서 예외처리 스프링에서 예외를 처리하기위해 아래 3가지 방법이 있다. 컨트롤러 메서드 내에서 try-catch로 처리 컨트롤러에 @ExceptionHandler메서드가 처리 @ControllerAdvice클래스의 @ExceptionHandler메서드가 처리 예외를 처리하게되면 클라이언트에게 보여줄 View를 지정해야하는데 그 방식에는 크게 2가지 방법이 있다. 응답 상태 코드별로 뷰 지정: error-page 예외 종 류별로 뷰 지정: SimpleMappingExceptionResolver Controller에서 예외처리 어노테이션 종류 스프링프레임워크에서 예외처리 할 때 사용되는 어노테이션에는 3가지가 있다. @ExceptionHandler 특정 controller만 예외처리할때 사..
1. employees 테이블로부터 JOB_ID 값을 기반으로 모든 사원의 등급을 표시하는 query를 작성하시오. DECODE 함수와 Case 식 두 가지 방법으로 작성하시오. [Decode] SELECT job_id, decode (job_id, 'ST_CLERK', 'E', 'SA_REP', 'D', 'IT_PROG', 'C', 'ST_MAN', 'B', 'AD_PRES', 'A', '0') GRADE FROM employees; [Case] SELECT job_id, CASE job_id WHEN 'ST_CLERK' THEN 'E' WHEN 'SA_REP' THEN 'D' WHEN 'IT_PROG' THEN 'C' WHEN 'ST_MAN' THEN 'B' WHEN 'AD_PRES' THEN 'A'..
Case 식 CASE 좌변 WHEN 우변 THEN 반환 (좌변과 우변이 같으면) [ELSE] 식 END 표기된 부서에 속한 사람들의 연봉을 각각의 값으로 조정하고 나머지는 연봉 변화없이 출력 SELECT last_name, job_id, salary, CASE job_id WHEN 'IT_PROG' THEN 1.10*salary WHEN 'ST_CLERK' THEN 1.15*salary WHEN 'SA_REP' THEN 1.20*salary ELSE salary END "REVISED_SALARY" FROM employees; SELECT last_name, job_id, salary, CASE WHEN job_id = 'IT_PROG' THEN 1.1*salary WHEN job_id = 'ST_CLE..