« PREV : 1 : NEXT »
오늘을 T-SQL 문을 해볼까합니다.
업무 이외 시간에 접근하는 사용자들를 허용하지 않는 방법을 T-SQL 문으로 생성해 보죠

/* 데이터 베이스를 만듭니다. */
GREATE TABLE Security.RestrictedLogonHours (
Id int NOT NULL IDENTITY(1,1),
GroupName sysname NOT NULL,
RestrictedTimeStart time NOT NULL,
RestrictedTimeStop time NOT NULL,
CONSTRAINT RestrictedLogonHours_pk
PRIMARY KEY CLUSTERED(Id)
);

/*원하는 그룹 및 시간대를 지정합니다. */
INSERT INTO Security.RestrictedLogonHours (
GroupName,
RestrictedTimeStart,
RestrictedTimeStop
)
VALUES (
"ITKA",
CAST("07:00" AS time),
CAST("18:00" AS time)
);
저작자 표시 비영리

'데이터베이스 > MSSQL' 카테고리의 다른 글

[트리거]업무시간 이외 접근 차단하기  (0) 2010/04/22
DB 파일 이동하기  (0) 2010/04/01
SQL 트랙잭션 로그 관리하기  (0) 2010/03/19
SQL 2005 관리 가이드  (0) 2009/09/10
SQL 메모리 관리  (0) 2009/08/14
패치, 시스템, 드라이브 모니터링  (0) 2009/08/07
Write your message and submit

DB 파일 이동하기

Posted 2010/04/01 10:26
간혹 MSSQL 기본 DB인 Temp DB의 사용량이 커져서, C드라이브의 용량이 부족해지는 경우가 있습니다.
이때 아래 명령을 통해, DB및 Tranjection Log를 이동할수 있습니다.

use master
go
Alter database tempdb modify file (name = tempdb, filename = 'D:\Data\tempdb.mdf')
go
Alter database tempdb modify file (name = templog, filename = 'D:\Data\templog.ldf')
Go

저작자 표시 비영리

'데이터베이스 > MSSQL' 카테고리의 다른 글

[트리거]업무시간 이외 접근 차단하기  (0) 2010/04/22
DB 파일 이동하기  (0) 2010/04/01
SQL 트랙잭션 로그 관리하기  (0) 2010/03/19
SQL 2005 관리 가이드  (0) 2009/09/10
SQL 메모리 관리  (0) 2009/08/14
패치, 시스템, 드라이브 모니터링  (0) 2009/08/07
Write your message and submit

SQL 트랙잭션 로그 관리하기

Posted 2010/03/19 19:15
트랜잭션 로그를 자동 증가 옵션을 사용했을경우 무한적으로 증가할수 있습니다.
차후 저장공간이 부족하여, DB의 오류를 막기 위해 해당 로그를 정리해 주어야 하는데요,
로그를 정리하는 방법은 다름 순서로 진행합니다.

1. 트랙잭션 로그 삭제
트랙잭션 로그는 백업을 실행하게 되면 자동으로 정리가 됩니다. (트랜잭션 로그 파일이 늘어난 상태라면 늘어난 크기가 줄지는 않습니다. 단지 안의 내용만 삭제됩니다. 한마디로 껍데기 크기는 유지한다는 것이죠 확장자:LDF)

그런데 중요도가 낮아 백업이 필요 없다면, 아래 명령을 실행하시면 됩니다.
BACKUP LOG DB명 WITH NO_LOG 혹은 TRUNCATE_ONLY
     * TRUNCATE_ONLY 및 NO_LOG는 다지우라는 옵션입니다. - 전체 복구시 복구 않될수 있어요, 주의

백업이 필요하시다면 다음 명령으로 실행하세요
BACKUP LOG DB명 TO DISK = '백업 경로 및 백업 화일명(예c:\temp\temp.bak)'

위까지 작업 하셨다면, 현재 트랜잭션 로그는 삭제가 된 상태 입니다.
하지만 위에서 애기 드린것처럼 파일 크기는 그대로 입니다. (속빈 강정같은 상태인것이죠)
그럼 사이즈를 실제 사이즈로 줄이는 명령을 아래와 같이 내립니다.

DBCC SHRINKDATABASE(DB명, TRUNCATEONLY)


2. 트랙잭션 로그 사이즈 제한
위작업까지 하셨다면 실제적인 로그작업은 마치신것이지만, 여전히 자동 증가이기 때문에 차후에 이런작업을 계속 해주고 싶지 않으시다면 트랜잭션 로그 파일의 크기를 제한 해야겠죠? 트랜잭션 로그파일의 크기를 제한하게 되면, 제일 먼저 써진 트랜잭션 로그가, 제한 용량에 도달하였을경우 삭제된다고 생각하시면 됩니다.

그럼 다음 명령으로 용량을 제한하도록 합시다.
DBCC SHRINKDATABASE(DB명, 1000 
*1000은 MB 단위입니다. 위 명령은 1GB로 제한한 것입니다.
저작자 표시 비영리

'데이터베이스 > MSSQL' 카테고리의 다른 글

[트리거]업무시간 이외 접근 차단하기  (0) 2010/04/22
DB 파일 이동하기  (0) 2010/04/01
SQL 트랙잭션 로그 관리하기  (0) 2010/03/19
SQL 2005 관리 가이드  (0) 2009/09/10
SQL 메모리 관리  (0) 2009/08/14
패치, 시스템, 드라이브 모니터링  (0) 2009/08/07
Write your message and submit

SQL 2005 관리 가이드

Posted 2009/09/10 12:54


'데이터베이스 > MSSQL' 카테고리의 다른 글

DB 파일 이동하기  (0) 2010/04/01
SQL 트랙잭션 로그 관리하기  (0) 2010/03/19
SQL 2005 관리 가이드  (0) 2009/09/10
SQL 메모리 관리  (0) 2009/08/14
패치, 시스템, 드라이브 모니터링  (0) 2009/08/07
사용자 권한 확인하기  (0) 2009/08/04
Write your message and submit

SQL 메모리 관리

Posted 2009/08/14 09:11


오늘은 SQL의 최대 메모리 구성값 확인 및 할당 방법에 대해서 알아보도록 할께요
기술지원중에도 자주 나오는 케이스 이므로 알아두시면 유용하실거라 생각됩니다.
참 그리고 몇몇 분들은 "지금 SQL 사용도 거희 않하는데 메모리 거희 다써서 불안하다"고 하시는 분들..
SQL은 메모리를 필요할때 가져다 쓰는 방식이 아니고, 미리 점유하고 있다가 사용하는 방식이라는점을 생각해주시기 바랍니다.


먼저 현재 구성 값이 얼마인지 확인합니다.
sp_configure 'show advanced options' , 1

go

RECONFIGURE

go

sp_configure 'max server memory (MB)'

go
위 T-SQL 문을 입력후 F5키를 누르고 config_value, run_value 이 값을 확인 합니다
아래 그림 처럼 현재 구성된 값은 config_value,
사용중인 값은 run_value에 표시되게 됩니다.(대부분 config_value와 같은 값을 가르킵니다.)


그럼 이제 구성값을 변경하여 봅시다.
sp_configure 'max server memory (MB)' , '1024'

위 명령은 1GB로 최대 메모리값을 제한하는 것입니다.
변경이 잘되었는지는 위 명령으로 확인해보시면 됩니다.

* 최대 메모리를 제한하게 될경우, SQL 성능에 많은 영향을 미칠수 있습니다.
 (그래서 저도 제한하는건 실행하지 않았습니다.)




저작자 표시 비영리

'데이터베이스 > MSSQL' 카테고리의 다른 글

SQL 트랙잭션 로그 관리하기  (0) 2010/03/19
SQL 2005 관리 가이드  (0) 2009/09/10
SQL 메모리 관리  (0) 2009/08/14
패치, 시스템, 드라이브 모니터링  (0) 2009/08/07
사용자 권한 확인하기  (0) 2009/08/04
SQL Server Memory AWE 옵션사용  (0) 2009/05/12
Write your message and submit

안녕하세요 올엠입니다~

오늘은 데이터베이스 글을 몇개 적어 보겠습니다.

 

기본적인 MSSQL 모니터링 방법에 대해서 말이죠.

흠.. 모니터링 하면 가장 기본적인게 무엇이 있을까요?

 

패치 상태, 시스템 및 드라이브 사용 현황이 되지 않을까요?

 

 

그럼 우선 패치 상태를 확인하는 방법을 알아보도록 하겠습니다.

 

T-SQL을 통해 아래 문장을 입력합니다.

select @@version

실행결과

시스템 상태 확인

T-SQL을 활용합니다.

Exec master..xp_msver

 

실행결과

 

그럼 이제 디스크 사용량을 보도록 하죠

역시 T-SQL문을 사용합니다.

exec master..xp_fixeddrives

실행결과

'데이터베이스 > MSSQL' 카테고리의 다른 글

SQL 2005 관리 가이드  (0) 2009/09/10
SQL 메모리 관리  (0) 2009/08/14
패치, 시스템, 드라이브 모니터링  (0) 2009/08/07
사용자 권한 확인하기  (0) 2009/08/04
SQL Server Memory AWE 옵션사용  (0) 2009/05/12
보안 대응책  (0) 2009/04/23
Write your message and submit

어느 마음씨 좋으신 분이 좋은 오라클 성능 분석 및 보고서 제작툴을 공개해주셨습니다.

 

제작자 글==

freeware 지만, high quality 를 지향합니다.

실시간 성능 그래프, ASH 보고서, AWR 보고서 출력 기능을 가진

Ver. 1.0.1(2009/07/27) 이 릴리즈 되었습니다.

아래는 스크린샷입니다. 마음껏 사용하세요~~

 

다운로드 : http://orascope.net/lite/

 

'데이터베이스 > ORACLE' 카테고리의 다른 글

성능/보고서 작성 OraScope.Net (LITE)  (0) 2009/08/07
Write your message and submit

사용자 권한 확인하기

Posted 2009/08/04 17:48

오늘은 오랫만에 MS-SQL에 대해 진행하도록 하겠습니다.

 

뭐.. MS-SQL의 경우 GUI가 잘되있어서 T-SQL을 사용할 일이 거희 없지만, 그래도 GUI로 확인하는것보다 표나, 텍스트 값이 더 정확하고, 세밀하다는것 잘 아실것 입니다.

그래서 오늘 아는 지인분에게 (박**대리님) 살짝 메신저로 문의를 해봤답니다.

T-SQL으로 계정의 권한을 알수 있는지…

지인분께서 알려주신 사용자 권한을 T-SQL문으로 확인하는 방법을 확인해 볼까요?

 

select * from sys.server_principals

 

위 T-SQL 실행 결과

위처럼 사용 권한이 나오면 계정 타입이 나타나게 됩니다

(계정 타입으로 이것이 로그인용인지, 역할그룹인지를 확인하실수 있습니다.)

그리고 계정상태를 확인할 수 있지요

(여기에 값이 1이면 로그인 할수 없는 계정이됩니다.)

참 쉽죠 ^^;

'데이터베이스 > MSSQL' 카테고리의 다른 글

SQL 메모리 관리  (0) 2009/08/14
패치, 시스템, 드라이브 모니터링  (0) 2009/08/07
사용자 권한 확인하기  (0) 2009/08/04
SQL Server Memory AWE 옵션사용  (0) 2009/05/12
보안 대응책  (0) 2009/04/23
xp_cmdshell 권한상승취약점 막기  (0) 2009/04/22
Write your message and submit

SQL Server Memory AWE 옵션사용

Posted 2009/05/12 12:01

4GB이상의 물리적인 메모리를 사용할 수 있다면 AWE옵션을 사용하여 SQL에 보다 많은 메모리를 할당 할수 있습니다.
또한 AWE 옵션은 기본적으로 Locked Page를 할당받기 때문에 Windows에 의해서 SQL Server의 메모리가 강제로 Page Out되는 현상을 예방하는 효과도 기대할 수 있습니다.

1.     C:\Boot.ini 안에 PAE옵션이 설정되었는지 확인합니다.
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect
/PAE

2.     SQL 쿼리문을 통해 AWE를 활성화 합니다.(예시에서는 6144MB로 지정했음)
SQL Server
의 서비스 계정에 ‘Lock pages in memory (메모리의 페이지 잠그기) 권한이 부여되어 있는지 확인한 다음 SQL Server Management Studio에서 다음의 명령을 실행하고 SQL Server를 재시작해주어야 합니다

sp_configure 'awe enabled', 1
reconfigure with
override
go
sp_configure 'max server memory', 6144
reconfigure with
override
go


저작자 표시 비영리

'데이터베이스 > MSSQL' 카테고리의 다른 글

SQL 메모리 관리  (0) 2009/08/14
패치, 시스템, 드라이브 모니터링  (0) 2009/08/07
사용자 권한 확인하기  (0) 2009/08/04
SQL Server Memory AWE 옵션사용  (0) 2009/05/12
보안 대응책  (0) 2009/04/23
xp_cmdshell 권한상승취약점 막기  (0) 2009/04/22
Write your message and submit

보안 대응책

Posted 2009/04/23 18:08

데이터베이스 보안 대응 방법에 대해 아주 기본적인 대응책을 제공합니다.

'데이터베이스 > MSSQL' 카테고리의 다른 글

SQL 메모리 관리  (0) 2009/08/14
패치, 시스템, 드라이브 모니터링  (0) 2009/08/07
사용자 권한 확인하기  (0) 2009/08/04
SQL Server Memory AWE 옵션사용  (0) 2009/05/12
보안 대응책  (0) 2009/04/23
xp_cmdshell 권한상승취약점 막기  (0) 2009/04/22
Write your message and submit

SQL 2000 Server는 xp_cmdshell 의 권한 상승 취약점이 존재 하고 있습니다.
위의 문재는 현재아직 해결 되지 않고 있으며 SQL 2005 버젼에는 다른 방식으로 사용 되기 때문에 문재가 얘기 되고 있지 않습니다.

 

우선 문재점은 SQL에는 Buitin\administrator 라는 사용자가 있습니다. Windows Administrators Group의 User가 위의 SQL 사용자 입니다. 이 사용자는 DBO의 권한도 자동으로 가지게 됩니다. 이런 사용자가 DB에 접속을 했을 때 xp_cmdshell의 사용 권한을 Builtin\administrator 에서 권한을 제거 하였더라도 사용이 가능 하기 때문 입니다.

 

사실 Windows Administrator가 Commnad를 윈도우에서 사용 할 수 있기 때문에 구지 SQL에서 사용 가능 하지 않게 막을 필요는 없다라고는 생각 합니다만.. 그래도 어쨌건 맘에 안들어 하시는 분들은 꽤 계시더군요..

 

결과적으로 SQL 2000 Server는 위의 보안 취약점이 존재 함으로 SQL에서 cmd를 사용 못하게 하기 위해서는 xp_cmdshell 자체를 Drop 해 주어야 합니다.

 

아래의 쿼리로 xp_cmdshell 저장 확장 프로시져를 삭제 하는 방법을 알려 드리겠습니다.

 

xp_cmdshell remove

use master

go

exec sp_dropextendedproc 'xp_cmdshell'

go

xp_cmdshell add

use master

go

exec sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'

go

 

'데이터베이스 > MSSQL' 카테고리의 다른 글

SQL 메모리 관리  (0) 2009/08/14
패치, 시스템, 드라이브 모니터링  (0) 2009/08/07
사용자 권한 확인하기  (0) 2009/08/04
SQL Server Memory AWE 옵션사용  (0) 2009/05/12
보안 대응책  (0) 2009/04/23
xp_cmdshell 권한상승취약점 막기  (0) 2009/04/22
Write your message and submit