본문 바로가기

DBMS/SQL Server

(95)
[SQL Server] SQL 인젝션과 예방 SQL 인젝션과 예방 SQL 인젝션은 sql 쿼리문에 개발자가 의도 하지 않은 쿼리 문을 추가하도록 하여 비정상적인 결과를 얻기 위한 해킹 기법이다. 웹페이지 상에서 사용자 로그인 등 폼 입력 부분에서 특수 문자 등을 포함한 SQL 문의 일부 내용을 작성하여 해킹을 시도 한다. 이것은 특히 DB 에서 관리자 권한 등 불필요하게 많은 권한을 가진 계정으로 만들어 진 사이트에서 치명적일 수가 있다. 예를 들어 아래와 같은 코드를 살펴 보자. Select name from user where id=’id’ and password=’pwd’ 웹페이지 사용자 로그인 부분에서 유저아이디와 패스워드를 입력 받아서 위와 같은 sql 쿼리문을 완성 한 다음 쿼리를 실행 하여 리턴 되는 레코드가 있으면 로그인을 성공 시키..
[SQL Server] SQL Server Management Studio 단축키 내가 자주 사용하는 SSMS 단축키 단축키 동작 F5, Alt + X, Ctrl + E 선택 부분을 실행하거나 선택한 것이 없을 경우 전체 쿼리 편집기 실행 Ctrl + K + C 주석 Ctrl + K + U 주석 제거 Ctrl + R 결과창 보이기 / 감추기 Ctrl + Shift + L 선택영역을 소문자로 Ctrl + Shift + U 선택영역을 대문자로 Tab 줄 들여쓰기 Tab + Shift 줄 내어쓰기 Ctrl + L 예상 실행 계획 표시 Ctrl + M 쿼리 출력에 실제 실행 계획 포함 Ctrl + N, Alt + N 현재 연결에서 새 쿼리 열기 Alt + Break 실행 중인 쿼리 취소
[SQL Server] 집계 함수와 NULL 값 집계 함수와 NULL 값 COUNT(*) : NULL 값을 포함한 행의 수 COUNT(표현식) : 표현식의 값이 NULL 값인 것을 제외한 행의 수 SUM() : NULL 값을 제외한 합계 AVG() : NULL 값을 제외한 평균 ※ 조건절에 해당하는 데이터가 없을 때 COUNT(*)의 결과 값은 0 COL1 COL2 COL3 COL4 NULL NULL 50 30 30 20 10 30 NULL 10 NULL NULL 문제) SUM(COL1) + SUM(COL2 + COL3) + SUM(COL4)의 값은? 1.120 2.180 3.NULL 4.90 답은 120
[SQL Server] 프로시저의 모든 매개변수 한번에 보기 프로시저의 모든 매개변수 한번에 보기 SELECT 'Procedure_name' = b.name , 'Parameter_name' = a.name , 'Type' = type_name(user_type_id) , 'Length' = max_length , 'Prec' = CASE WHEN type_name(system_type_id) = 'uniqueidentifier' THEN precision ELSE OdbcPrec(system_type_id, max_length , precision) END , 'Scale' = OdbcScale(system_type_id, scale) , 'Param_order' = parameter_id , 'Collation' = CONVERT(sysname , CASE W..
[SQL Server] 버전, 서비스팩, 설치버전 알아보는 쿼리 SQL Server 버전, 서비스팩, 설치버전 알아보는 쿼리 SELECT @@VERSION as 풀버전 , SERVERPROPERTY ('productversion') as 버전번호 , SERVERPROPERTY ('productlevel') as 서비스팩이름 , SERVERPROPERTY ('edition') as 설치버전
[SQL Server] 필터링된 인덱스 (Filtered Indexes) SQL Server 2008에서 새로 제공되는 기능인 '필터링된 인덱스 (Filtered Indexes)' 란 인덱스를 생성하는 해당 열의 전체 데이터에 대해서 인덱스를 생성하는 것이 아니라, 특정 조건에 맞는 데이터로만 인덱스를 생성하는 것이다. 이렇게 필터링된 인덱스를 이용하면 인덱스의 크기가 줄어들어 인덱스 관리의 부담을 덜 수 있다. 필터링된 인덱스를 생성하는 구문은 기존의 'CREATE INDEX...' 문장에 'WHERE 조건'만 붙여주면 된다. 필터링된 인덱스를 사용하면 좋은 사례 1. NULL 값이 대부분인 열에 인덱스를 생성할 때 - NULL 값이 대부분인 열에 인덱스를 생성하게 되면, NULL 값까지 인덱스가 생성된다. 그런데, 인덱스의 실제로 NULL 값을 조회할 일은 별로 없지만, ..
[SQL Server] 버전별 코드명 MS SQL Server 2005 (코드명 Yukon) 유콘은 캐나다의 지명으로, 금광으로 유명한 지역이다. 마이크로소프트는 2005년 '유콘'이라는 코드명으로 개발한 SQL 서버 2005를 같은 해 10월 출시했다. XML 데이터 관리를 지원하는 것이 특징이다. 이 관계형 데이터베이스 관리 시스템 버전에는 닷넷 프레임워크와 통합이 가능하도록 CLR(Common Language Runtime)이 도입됐었다. 또 데이터베이스 서버가 웹 서비스에 노출되도록 한 첫 버전이었다. MS SQL erver 2008 (코드명 Katmai) 캐트마이산: 미국 Alaska주 서남부의 활화산; 높이 2,125m MS SQL Server 2008 R2 (코드명 Kilimanjaro) 킬리만자로산 : Tanzania에 있는 ..