본문 바로가기

SP

(3)
[MySQL/Stored Procedure] 접근 제어 설정 (SQL SECURITY) MySQL의 Stored Procedure는, 실행한 user의 privilege 또는 Stored Procedure를 생성한 user의 privilege에 영향을 받습니다. 물론 개발자가 선택할 수 있는데, SQL SECURITY 특성 값에 따라 좌우되죠. SQL SECURITY DEFINER : 생성한 user의 권한을 따름 SQL SECURITY INVOKER : 실행한 user의 권한을 따름 SP에서 이 구문을 생략하면 DEFINER가 기본값이기 때문에 SP를 생성할 때 사용한 user의 권한으로 SP가 실행됩니다. MS-SQL에서는 SP를 호출한 계정의 권한이 사용되는 것과 대조를 이루는데요.아마도 EXECUTE 권한의 차이에서 비롯된 것 같습니다. MS-SQL에서는 SP에 대한 EXECUTE ..
[MySQL/Stored Procedure] 명명 규칙 Stored Procedure 명명 규칙접두어 usp_ 를 사용한다.SP의 이름을 구성하는 각각의 단어를 underscore 로 연결하는 snake case 를 사용한다.특정 테이블에 대한 단순 CRUD 작업인 경우, 각각 아래와 같은 이름 규칙을 사용한다.CREATEusp_add_{테이블 이름}RETRIEVEusp_get_{테이블 이름} / 단일 행을 반환하는 경우usp_get_list_{테이블 이름} / 여러 행을 반환하는 경우UPDATEusp_mod_{테이블 이름}DELETEusp_del_{테이블 이름}SP가 특정 비즈니스 로직을 처리하는 경우, 적절한 동사와 명사의 조합을 사용한다.(예) usp_validate_applicant, usp_check_brand_user, ...local variab..
MySQL의 Stored Procedure 특성 MS-SQL을 오래 다뤄 본 사람이라면 Stored Procedure는 옵션이 아닌 필수라는 점에 동의할 겁니다. 하지만 MySQL에서 Stored Procedure를 사용하는 것은, MS-SQL에서 만큼 보편적이지 않습니다. 여러가지 이유가 있겠지만 성능 이슈도 한 몫한다고 볼 수 있는데요. 아래 글을 읽어보니 어느 정도 납득이 되더군요. http://www.joinfu.com/2010/05/mysql-stored-procedures-aint-all-that/ 위 글은 MySQL 5.5 기준으로 씌여졌지만, 5.6과 5.7에서도 별 다르지 않습니다. 요약에 앞 서, MS-SQL 개발자들이 SP를 선호하고 실제로 SP의 사용이 권장되는 이유가 무엇일까요? 데이터를 처리하는 하나의 추상화된 레이어를 제공한..