SQL Server 보안 관련 계정관리에 사용되는 명령어 정리 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 -- login 계정 생성 CREATE login [login 계정명] WITH password = '[암호]' ; go -- user 계정 생성 CREATE USER [user 계정명] FOR LOGIN [login 계정명] ; GO -- login 계정 서버 역할 부여 EXEC sp_addsrvrolemember '[login 계정명]' , '[role]' ; GO -- login 계정 비활성화 ALTER LOGIN [login 계정명] DISABLE; GO -- user 계정 실행 권한 부여 GRANT EXECUTE ON [스..
sp_who2 프로세스를 조회하는 명령어 BlkBy 칼럼을 통해 락이 걸렸는지 확인 가능하다. (결과가 '.'이 아니면 lock이 발생한 프로세스이다.) 현재 작업 중인 모든 세션을 확인할 수 있기 때문에 서버가 내려갔는지에 대한 것도 해당 명령어로 확인 가능하다. sp_lock 락이 걸린 세션을 확인하는 명령어 mode 컬럼에서 어떤 종류의 lock이 걸렸는지 확인 가능하다. lock의 종류는 다양한데, 대표적인 lock으로는 shared-lock(S)과 exclusive-lock(X)이 있다. S-lock은 트랜잭션이 데이터를 읽는 동안에만 잠금이 되는 것인데, 여러 트랜잭션이 동시에 하나의 개체를 읽을 수 있다. 다시 말해 S-lock끼리는 서로 충돌하지 않는다. 따라서 S-lock은 크게 문제를 ..
데이터베이스 작업을 하면서 주어진 자원을 최대한 효율적으로 사용하는 것은 하나의 중요한 포인트이다. 따라서 SQL문을 최적화하기 위해서 SQL튜닝을 진행하는데, SQL 튜닝을 진행하기 앞서 SQL에 대한 이해와 SQL 데이터의 분석이 선행되어야 한다. 프로시저 캐시(Procedure cache/Plan cache) 프로시저 캐시는 쿼리 플랜이 저장되는 메모리 공간으로 쿼리 플랜이 재사용될 수 있도록 함으로써 쿼리문을 컴파일하는데 드는 비용을 최소화하기 위해 사용된다. 일반적으로 SP(Stored Procesure)의 사용을 권장하는 이유가 쿼리 플랜을 재사용하여 성능 향상을 기대할 수 있기 때문인데, 프로시저 캐시도 비슷한 역할을 하는 것이다. 하지만 프로시저 캐시에 저장되는 ad-hoc 타입의 쿼리문의..
% (Represents zero or more characters) 가장 많이 사용하고 기본적인 와일드카드이다. 모든 문자를 포함하고 없는 경우도 해당된다. ex) SELECT * FROM tb_test WHERE name LIKE '%동%' 결과) 이동건 김동곤 박동 동숙 _ (Represents single character) 해당하는 문자만큼의 와일드카드이다. DB를 관리하다 보면 테이블명에 '_'를 많이 사용하게 되는데 이 때문에 곤란한 경우가 있다. ex) SELECT * FROM tables WHERE name LIKE 'tb_%' 결과) tb_test tb_item tbs 위과 같이 tb_로 시작하는 것을 조건으로 걸고 싶었지만 결과는 '_'를 와일드카드로 인식하여 의도하지 않은 결과를 출..
Linked Server는 SQL server에서 제공하는 기능 중 하나이며, Linked Server를 사용하면 SQL Server 인스턴스 외부의 DB 데이터 원본에 대해 명령을 실행할 수 있도록 연결된 서버를 구성할 수 있다. 즉, 이를 통해 SQL Server 외부에서 데이터를 액세스 할 수 있게 된다. 따라서 용도에 따라 DB서버가 분리되어 있을 때 데이터 조회 시에 각각의 Server에서 진행할 필요없이 Linked Server를 통해 한 번에 조회가 가능하다. Linked Server의 데이터를 불러오는 가장 대표적이고 간단한 방법은 From절의 조회하고자 하는 테이블명 앞에 Linked Server 별칭을 붙여주는 것이다. 하지만 Linked Server를 위와 같은 방법으로 사용하면 성능..