분류 전체보기 311

[DB] MSSQL 뷰테이블 생성 및 조회권한설정

안녕하세요. 이번에는 뷰테이블생성 및 권한설정하는 방법에 대해 알아보겠습니다. 외부시스템에 특정데이터를 제공해줘야 될경우 뷰테이블을 만들고 해당테이블만 조회권한 등을 주는형태로 제공합니다. SQL Management툴을 사용해서 권한주는 방법과 스크립트문을 사용해서 권한주는 방법에 대해 소개해 드리겠습니다. MSDN상 뷰생성 Syntax입니다. | docs.microsoft.com/ko-kr/sql/t-sql/statements/create-view-transact-sql?view=sql-server-ver15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 -- Syntax for SQL Server and Azure SQL Database CREATE [ OR ALTER ] VIEW [ s..

프로그래밍/DB 2020.10.05

[DB] MSSQL sa계정이 갑자기 로그인 안될경우

MSSQL계정이 갑자기 로그인이 안되는 경우가 있습니다. 이럴경우에는 비밀번호를 잘못입력한경우가 가장 많겠지만 그렇지 않을경우에는 크게 아래 3가지경우에 로그인이 안되는 경우가 발생합니다. 1. 서버인증모드 : sa계정비활성 2. 계정암호정책 강제적용됨. 3. 윈도우NT비밀번호를 변경한경우 : MSSQL서비스자체가 구동되지 않아 로그인이 되지 않음 1. 서버인증모드 서버인증모드를 Windows 인증모드로만 설정한경우에 발생하며 서버속성 -> 보안 -> 서버인증 항목에서 인증모드를 SQL Server 및 Windows 인증모드로 설정하면됩니다. 인증모드 변경 스크립트문 1 2 3 4 5 6 -- sa 계정 활성화 ALTER LOGIN sa ENABLE -- sa 계정 비활성화 ALTER LOGIN sa D..

프로그래밍/DB 2020.10.05

[C#] 비밀번호(패스워드) 암호화 SHA256알고리즘

비밀번호 암호화를 해야될경우에 Sha256 단방향 알고리즘을 많이 사용합니다. 문자열을 입력받아서 SHA256알고리즘적용하여 암호화 처리를 해보도록 하겠습니다. SHA256 Class를 사용해서 처리하면되고 해당 클래스를 사용하기 위해서는 System.Security.Cryptography네임스페이스를 추가해야합니다. 1 using System.Security.Cryptography; 아래와 같은순서로 변환처리가 됩니다. 1. 입력받은 문자열을 바이트배열로 변환 2. 바이트배열을 암호화된 32byte 해쉬값으로 생성 1 2 3 4 using (SHA256 mySHA256 = SHA256.Create()) { hashValue = mySHA256.ComputeHash(array); } 3. 32byte 해..

프로그래밍/C# 2020.10.03

비주얼스튜디오 단축키(클립보드)가 안될경우. 설정초기화방법

비주얼스튜디오작업도중에 어떤 설정을 잘못건들였는지는 모르겠는데 클립보드등 단축키가 안될경우가 있습니다. 윈도우상에는 클립보드가 되는데 비주얼스튜디오만 안되는 경우가 있습니다. 백스페이스도 되지 않고요. 이럴경우에 어떤설정인지 찾을수가 없어서 난감한 경우가 있는데 설정관련 초기화 하여 해결할수 있습니다. 도구-> 설정 가져오기 및 내보내기를 클릭합니다. 설정가져오기 및 내보내기 마법사 메뉴에서 모두 설정하기를 선택후 다음을 클릭합니다. 모두 다시 설정하기 항목을 선택후 다음을 클릭합니다. 기존 설정파일을 백업한후 다음을 클릭합니다. 일반항목을 선택후 마침을 클릭합니다. 이제 다시 비주얼스튜디오에서 확인해보니 클립보드가 정상으로 동작되면 설정값이 초기화되어 최초 설치된 상태로 사용할수 있습니다.

[DB] MSSQL 저장프로시저 예외처리방법(Try Catch .. throw)

이번에는 저장프로시저 사용시 예외처리방법에 대해 살펴보도록 하겠습니다. msdn의 syntax를 살펴보면 아래와 같습니다. 프로그램의 try catch와 유사한것을 볼수 있습니다. 1 2 3 4 5 6 7 BEGIN TRY { sql_statement | statement_block } END TRY BEGIN CATCH [ { sql_statement | statement_block } ] END CATCH [ ; ] 먼저 MyUser라는 테스트용 데이터베이스를 만들어보겠습니다. 1 2 3 4 5 CREATE TABLE [dbo].[MyUser]( [id] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY, [name] [varchar](10) NULL, ) ON [PRIMARY..

프로그래밍/DB 2020.10.02

[DB] MSSQL 자동증가열(IDENTITY)사용법 및 주의사항

테이블을 설계하다보면 고유ID값으로 로그성 정보나 이력관련 부분등 자동증가열을 사용하는 경우가 있습니다. IDENTITY값관련 사용법 및 주의사항에 대하여 살펴보겠습니다. 아래 4가지 순서로 확인해보겠습니다. 1. 자동증가열 생성방법 2. ID값이 중간에 빠지는 경우 3. ID값 재사용방법. SET IDENTITY_INSERT .. ON 4. ID값 가져오기. ID값을 확인 시스템함수. @@IDENTITY,IDENT_CURRENT(),SCOPE_IDENTITY() 1. 자동증가열 생성방법 아래 스크립트문을 살펴보면 id필드값이 IDENTITY(1,1) 으로 설정된것을 알수있습니다. 초기값이 1로해서 1씩 증가하겠다는 의미입니다. IDENTITY(10,5)이런식으로 지정하면 초기값을 10으로 해서 5씩증가..

프로그래밍/DB 2020.10.01

[DB] MSSQL 프로필러(Profiler) 사용법. 속도느린쿼리 확인방법

시스템을 운영하다가보면 데이터베이스에 부하를 주는 쿼리문을 확인해야하는 경우가 있습니다. 이럴때 SQL Profiler를 사용하여 속도저하 쿼리를 확인할수 있습니다. SQL Management -> SQL Server Profiler항목을 선택합니다. 추적하고하는 데이터페이스 서버에 로그인합니다. 추적하고 싶은 이벤트를 선택합니다. 쿼리문을 추적할 예정이기때문에 저장프로시저(Stored Procedures)와 TSQL에 대하셔 선택하여 실행하도록 하겠습니다. Run버튼을 선택하여 추적을 시작합니다. 추적을 시작하면 아래와 같이 TSQL문과 저장프로시저에 대한부분을 추적할수 있습니다. 항목에 대하여 살펴보도록 하겠습니다. 항목 리스트 TextDataTSQL실행문정보 표시 ApplicationName 접속한..

프로그래밍/DB 2020.09.29

[DB] MSSQL 데이터베이스(DB)백업 및 복원.(영문버전)

이번시간에는 MSSQL 2019버전으로 데이터베이스 백업 및 복원하는 방법에 대해 알아보도록 하겠습니다. 먼저 SQL Management Studio를 실행하여 로그일을 합니다. TEST데이터베이스가 있다고 가정하고 해보도록 하겠습니다. 영문판이 설치되어 있는관계로 영문버전기준으로 설명드리겠습니다. TEST DB에 마우스오른쪽 버튼을 클릭 -> Task -> Back Up항목을 선택합니다. Backup Type을 Full(전체)로 하여 백업하도록 하겠습니다. 폴더를 지정하지 않으면 "C:\\Program Files\\Microsoft SQL Server\\MSSQL15.MSSQLSERVER\\MSSQL\\DATA" 하위폴더에 백업파일이 생성됩니다. 백업방법 1. 전체백업(Full) 전체데이터를 백업하는 ..

프로그래밍/DB 2020.09.29

아두이노(Arduino) 개발환경구축

개발환경을 구축하기 위해서는 먼저 개발키트를 구매해야겠죠. 먼저 "아두이노, 상상을 현실로 만드는 프로젝트 입무편" 책이 포함되어서 구매하였고 키트내용물은 기본으로 선택하여 구매하였습니다. 가격은 오래전에 구매해둔 책이라 정확치는 않은데 대략 3~4만원정도 합니다. 키트목록을 보니 아두이노 보드, 저항 LED, 빵판, LED, 모터, 버튼, 초음파센서, 세그먼트 등이 있습니다. 먼저 키트내용 제품의 부속품들을 살펴보겠습니다. 아두이노보드 : 아두이노우노 제품으로 테스트 해볼 예정입니다. 브레드보드(빵판) : 납땜을 해야되는데 납땜 없이 선들을 연결시켜줍니다. 뒷면 스티커를 벗겨보면 선들이 이어져 LED 해더소켓 : 회로를 구성할수 있게하는 선들입니다. 브레드 보드에 연결해서 사용할겁니다. 저항 : 과전류..

IT일반/기타 2020.09.28

[C] 문자열함수 trim,ltrim,rtrim,split 만들기

C언어상에서는 문자열관련 함수가 제한적이기 때문에공백문자제거함수인Trim,Rtrim,Ltrim 함수가 없기때문에 만들어서 사용해보록 하겠습니다. 1. ltrim함수 구현방법 문자열 처음부터 검색해서 스페이스값이 나올때까지 반복실행하다가 스페이스값이 나오면 해당부분 포인터 위치를 옮기면됩니다. 2. rtrim함수 구현방법 ltrim과 반대로 문자열의 마지막부분부터 역순으로 스페이스값이 나올때까지 반복하다가 스페이스가 있으면 문자열종료를 알려주는 *(end + 1) = '\\0' 값을 할당해주면됩니다. 3. trim ltrim, rtrim을 한번씩해주면됩니다. 스페이스 유무를 체크해보려면 isspace()함수를 사용해야합니다. Man Page를 검색해서 확인하면 프로토타입을 확인해보겠습니다. #include..