본문 바로가기

work/mssql

xp_cmdshell 사용 권한 부여 방법 출처 : http://www.sqlworld.pe.kr/mboard/mboard/mboard.asp?board_id=tip&group_name=board&idx_num=29 안녕하세요? 디비누리 SQLWorld의 이장래입니다.xp_cmdshell 은 기본적으로 사용할 수 없게 설정되어 있습니다. 그리고 xp_cmdshell 를 사용가능하도록 설정한다 하더라도 일반 계정은 사용할 수 없습니다. 물론 일반 계정에게 sysadmin 권한을 주면 xp_cmdshell 를 사용할 수 있지만 이렇게 하면 보안에 큰 취약점이 생기게 됩니다. 다음의 과정과 같이 하면 이러한 문제 없이도 일반 계정에게도 xp_cmdshell 사용 권한을 부여할 수 있습니다. SQL Server에서 설정하기 전에 윈도우즈에서 설정할 내용.. 더보기
procedure 에서 loop 사용 참고 : http://www.sqlusa.com/bestpractices/whilelooptablevariable/ create procedure [PROC_SMS_SEND]AS beginset nocount on DECLARE @cnt INT, @seq INT, @imax INT, @i INTDECLARE @sender VARCHAR(15)DECLARE @receiver VARCHAR(15)DECLARE @message VARCHAR(80)DECLARE @sms_queue TABLE(rowidint identity (1, 1),seqint,phonevarchar(15),[message]varchar(80)) insert @sms_queueselectseq, phone, [message] from [mp.. 더보기
READ_COMMITTED_SNAPSHOT 상황) 특정 테이블에 주기적으로 모든데이터가 삭제되고 다시 인서트 되는 테이블이 있다(truncate & insert 시 불가능.. delete & insert 로 해야함)이때 insert 가 완료되고 commit 되기 전까지는 commit 전의 데이터가 select 되었으면 한다.insert & commit 후엔 commit된 데이터를 select 하고 싶다.with(NOLOCK) 으로 힌트를 주는 방법은 transaction완료가 되기전에 insert된 데이터가 select할 때 마다 건건이 반영된다.다음과 같은 방법으로 그것이 가능하도록 DB자체를 설정할 수 있다. ---------------------------------------------------------------------------.. 더보기
[mssql]분산 트랜잭션을 시작할 수 없는 경우 분산 트랜잭션을 시작할 수 없는 경우SET XACT_ABORT 옵션을 활성화하지 않은 경우SQL Server에서 분산 트랜잭션을 시작하기 위해서는 XACT_ABORT 세션 옵션을 반드시 ON으로 설정해야 합니다. XACT_ABORT 옵션을 ON으로 설정하면 T-SQL 문에서 런타임 오류가 발생할 경우 전체 트랜잭션이 종료된 후 롤백됩니다. OFF로 설정하면 오류를 발생시킨 T-SQL 문만 롤백되고 작업이 계속 진행됩니다. 구문 오류와 같은 컴파일 오류는 XACT_ABORT 옵션 설정으로 영향을 받지 않습니다.XACT_ABORT 옵션을 다음과 같이 활성화합니다.윈도우즈 2003 서버에서 DTC 사용 시 오류윈도우즈 2003 서버에서 DTC를 사용하는 분산 트랜잭션을 실시하는 경우에는 다음과 같은 오류 메시.. 더보기
OPENQUERY의 재발견 출처:http://zzizim.egloos.com/817935 오라클-MS SQL 데이터 호환의 비밀OPENQUERY의 재발견지용 | 엔코아컨설팅기업의 DBMS가 다양해지면서 이기종 DBMS, 그 중에서도 MS SQL 서버와 오라클 간에 데이터를 주고받는 요구사항이 늘어나고 있다. 이를 지원하는 고가의 상용 소프트웨어도 출시돼 있지만 SQL 서버가 기본적으로 제공하는 OPENQUERY 기능을 이용하면 비용 대비 효과적인 대안을 마련할 수 있다. OPENQUERY의 기본적인 설정 절차와 성능을 고려한 사용법 등을 살펴보자. 연재가이드 운영체제|윈도우 2000 개발도구|DA# 매니저, 쿼리 애널라이저 기초지식|SQL 서버 어드민, SQL 서버 SQL, 오라클 어드민, 오라클 PL/SQL 응용분야|데이터베이스.. 더보기
sp_send_dbmail 권한 부여하기 1. sp_send_dbmail 에 대하여 권한 부여 sa 또는 sysadmin 권한이 있는 계정으로 로그인 후에.. use msdb go sp_Adduser 계정명,계정명 go GRANT EXECUTE ON sp_send_dbmail TO 계정명 go 2. Database Mail 전체에 대한 권한 부여 exec sp_addrolemember 'DatabaseMailUserRole',계정명 더보기
MSSQL Sendmail 설정 (2005 이상) [1] DataBase 메일 Enable 설정 use master go sp_configure 'show advanced options',1 go reconfigure with override go sp_configure 'Database Mail XPs',1 go --sp_configure 'SQL Mail XPs',0 --go reconfigure go [2] 메일 계정 설정 -- delete from msdb.dbo.sysmail_account; EXECUTE msdb.dbo.sysmail_add_account_sp -- 사용자 정의 부분 ********************************************** @account_name = 'MyMailAccount', @descripti.. 더보기
mssql trigger ** Trigger (트리거)** 트리거는 성능향상을 위한 도구라기 보다는, 비즈니스 규칙을 효과적으로 데이터베이스 서버 계층에 구현하게 해 주는 기능. 수동으로 여러 가지 작업을 하나의 트랜잭션으로 묶어서 실행 해야하거나, 함께 이루어져야 할 일련의 작업들을 논리적으로 묶어야 할 필요가 있을 때는 트리거보다 더 좋은 대안은 없다. 사실 트리거를 쓰면 간단하게 해결될 것을, 응용 프로그래밍 차원에서 엄청난 코딩량으로 승부하거나, 아니면 서버에서 처리하더라도 복잡한 SQL 문을 사용해서 그것도 약간은 허술한 논리로 구현하는 경우가 너무 많다. 1) 트리거 사용 이유 트리거란 “자동으로 실행되도록 정의된 특수한 저장 프로시저”이다. 실제로 트리거는 특수한 형태의 저장 프로시저이다. 트리거 내에 정의할 수 있.. 더보기
[MSSQL] 비트연산 & : AND ( http://msdn.microsoft.com/ko-kr/library/ms174965(v=SQL.90).aspx ) | : OR ( http://msdn.microsoft.com/ko-kr/library/ms186714(v=SQL.90).aspx ) ~ : NOT ( http://msdn.microsoft.com/ko-kr/library/ms173468(v=SQL.90).aspx ) ^ : Exclusive-OR ( http://msdn.microsoft.com/ko-kr/library/ms190277(v=SQL.90).aspx ) 더보기
[MSSQL] 테이블 전체 목록 및 크기(KB) 조회 SET NOCOUNT ON --정보를 저장할 임시 테이블을 만든다. CREATE TABLE #TBLSize (Tblname varchar(80), TblRows int, TblReserved varchar(80), TblData varchar(80), TblIndex_Size varchar(80), TblUnused varchar(80)) ; DECLARE @DBname varchar(80) DECLARE @tablename varchar(80) SELECT @DBname = DB_NAME(DB_ID()) PRINT 'User Table size Report for (Server / Database): ' + @@ServerName + ' / ' + @DBName PRINT '' -------커서를 할당.. 더보기
How To: Enable RDS.Dataspace Objects in IIS 7 FWIW – I have now been able to get the RDS.Dataspace stuff working on both the x86 and x64 versions of Windows 2008 + IIS 7. I will attempt to list the steps I followed to get it enabled on my servers in hopes that it might reduce the amount of frustration folks have been having trying to find information on how to get this working (based on my own futile efforts to find similar content on the i.. 더보기
MSSQL 2000 서비스팩 버전 확인 방법 select @@version을 하셔서 아래 내용을 확인하세요. sp3 readme 파일에 있는 내용입니다. SQL Server 2000 버전 및 수준 @@VERSION ProductLevel SQL Server 2000 RTM 8.00.194 RTM Database Components SP1 8.00.384 SP1 Database Components SP2 8.00.534 SP2 Database Components SP3 8.00.760 SP3 Database Components SP4 8.00.790 입니다. [출처] MSSQL 2000 서비스팩 버전 확인 방법|작성자 구구님 더보기
[MSSQL] Microsoft SQL Server 2005 Express Edition 설치 및 사용후기 출처 : http://mudchobo.tomeii.com/tt/302?category=13 아주 별의 별 것 다 해봅니다-_-; 모 고객사가 서버가 Windows 2003 server에 MSSQL을 사용한다고해서 MSSQL까지 삽질하게 되었습니다. MS계열의 것은 학교다닐 때 MFC나 C#을 배운 것 빼고는 제대로 배워본 적이 없어서 MS제품과는 좀 인연이 없었습니다. 하지만, 일하다보니 이런 MSSQL Database를 만지게 되었네요. 우선 공짜버전인 Express Edition버전을 설치해봤습니다. http://www.microsoft.com/korea/msdn/vstudio/express/sql/download/ 이 사이트가면 3. 다운로드 및 설치 부분에서 2개로 나눠진 것을 볼 수 있습니다. .. 더보기
[MSSQL] 데이터베이스 다이어그램 소유권 이해(Visual Database Tools) 출처 : http://blog.daum.net/sobakcc/8436142 SQL Server 2005 온라인 설명서(2007년 9월) 데이터베이스 다이어그램 소유권 이해(Visual Database Tools) 데이터베이스 다이어그램 디자이너를 사용하려면 먼저 다이어그램에 대한 액세스를 제어하는 db_owner 역할(Microsoft SQL Server 데이터베이스의 역할)이 부여된 멤버 자격으로 이 디자이너를 설정해야 합니다. 각 다이어그램에는 반드시 한 명의 소유자(다이어그램을 만든 사용자)가 있어야 합니다. 다이어그램 설정에 대한 자세한 내용은 방법: 데이터베이스 다이어그램 디자이너 설정(Visual Database Tools)을 참조하십시오. 다이어그램 소유권과 관련하여 유의할 점은 다음과 같습.. 더보기
날짜 및 시간 요일 구하기 DATEPART 지정한 날짜의 특정 날짜 부분을 나타내는 정수를 반환합니다. 구문 DATEPART ( datepart , date ) 인수 datepart 반환될 날짜 부분을 지정하는 매개 변수입니다. 다음은 Microsoft® SQL Server™에서 인식하는 날짜 부분과 약어입니다. 날짜 부분 약어 year yy, yyyy quarter qq, q month mm, m dayofyear dy, y day dd, d week wk, ww weekday dw hour hh minute mi, n second ss, s millisecond ms week(wk, ww) 날 짜 부분은 SET DATEFIRST의 변경 사항을 반영합니다. 모든 해의 1월 1일은 week 날짜 부분의 시작 값을 정의합니 다. 예.. 더보기