>> 인스톨

 1. xp_crypt.dll 파일을 C:\Program Files\Microsoft SQL Server\MSSQL\Binn 으로 복사합니다.
     설치된 경로는 다를수 있으나 반드시 MSSQL\Binn 폴더에 넣어주세요.

 2. 쿼리분석기를 실행시켜서 sa 계정으로 로그인 합니다.

 3. 아래와 같은 구문 입력
 use master
 sp_addextendedproc 'xp_crypt', 'xp_crypt.dll'

 4. 올바르게 인스톨 되었는지 master database 의 확장프로시져 부분을 확인합니다.

 

 

 

>> 언인스톨

 sp_dropextendedproc 'xp_crypt'

 

>> 메모리해제
 dbcc xp_crypt(free)

 

 

/*-----------------------------------------
 실행확인
-----------------------------------------*/

declare @hash char(32)
declare @string varchar(50)
set @string = 'test'
exec master..xp_crypt @string, @hash OUTPUT
select @hash as 'Hash code'

 

/*-----------------------------------------
 테스트
-----------------------------------------*/

-- 테이블 생성
CREATE TABLE [dbo].[_Encrypt] (
 [seq] [int] IDENTITY (1, 1) NOT NULL ,
 [uid] [varchar] (20) NOT NULL ,
 [upass] [varchar] (32) NOT NULL
) ON [PRIMARY]
GO


-- 데이터삽입 프로시져 생성
CREATE PROCEDURE EncryptInsert
 @uid varchar(20),
 @upass varchar(32)
AS
 declare @hash char(32)
 EXEC master..xp_crypt @upass, @hash OUT
 Insert Into _Encrypt values (@uid, @hash)
GO

 

-- 삽입프로시져 실행
exec EncryptInsert 'A', 'A01'

-- 데이터비교 프로시져 생성
CREATE PROCEDURE EncryptComp
 @uid varchar(20),
 @upass varchar(32)
AS
 declare @hash varchar(32)
 EXEC master..xp_crypt @upass, @hash OUT
 SELECT * FROM _Encrypt WHERE uid = @uid AND upass = @hash
GO

 

-- 비교프로시져 실행
exec EncryptComp 'A', 'A01'

안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,

>> DB 연결 직후

 

 

>> sp_change_users_login 프로시져 실행 후

 

  

 

 

MS-SQL 재설치 후 mdf파일을 연결 하거나 DB 복원을 하면 각 DB의 사용자 이름에 로그인 이름의 연결이 끊어져 있다.

 

각 사용자별 권한이 설정되어있다면 사용자를 삭제하고 재 설정하기가 꽤나 번거로운 작업이다.

 

sp_change_users_login 프로시져를 사용하면 사용자를 삭제하지 않고 각 DB 사용자 이름과 SQL 로그인 이름을 연결 할 수있다.

 

사용법은 아래와 같다.

 

>> SQL Server 온라인 설명서

 

다음은 pubs 데이터베이스의 Mary라는 사용자와 기존 로그인의 연결을 변경하여(sp_addlogin를 사용하여 추가된) NewMary로의 연결을 보여 주는 예제입니다.

--Add the new login.
USE master
go
EXEC sp_addlogin 'NewMary'
go

--Change the user account to link with the 'NewMary' login.
USE pubs
go
EXEC sp_change_users_login 'Update_One', 'Mary', 'NewMary'
안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,

select floor(convert(float, datetime필드)*86400)- 2209021200 from bok

 

젠장 죠낸 삽질

 

쿼리 분석은 시간관계상 나중에...

 

함수로 만들어놓고 사용하면 괜찮을듯...

안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,

 

 

테이블 명세서 정리할 때 사용하면 편리할듯

안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,