본문 바로가기
반응형

IT/MSSQL170

[MSSQL] Error number: 15517 - 보안 주체 "dbo"이(가) 없거나 이 유형의 보안 주체를 가장할 수 없거나 사용 권한이 없기.. 데이터베이스 모델링과 관련하여 데이터베이스 다이어그램 사용중 다음과 같은 오류가 발생하였다. 권한 문제로 보이는데 디비에 해당 유저의 권한을 줌으로써 해결되었다. [오류내용] 보안 주체 "dbo"이(가) 없거나 이 유형의 보안 주체를 가장할 수 없거나 사용 권한이 없기 때문에 데이터베이스 보안 주체로 실행할 수 없습니다. (Source: MSSQLServer, Error number: 15517) [원인] 데이터베이스를 복원하면서 발생한 사용자 권한 문제 [해결방법] 문법 : ALTER AUTHORIZATION on DATABASE::[디비명] TO [유저명] 예시 : ALTER AUTHORIZATION on DATABASE::TESTDB TO SA 2022. 1. 14.
[MSSQL] nvarchar, varchar, nchar, char 차이점 (문자 데이터 형식) 데이터베이스의 테이블 생성시 데이터 형식을 설정해야합니다. 문자 형식일 경우 nvarchar, varchar, nchar, char 형식을 사용하는데요. 이번 시간에는 4가지 데이터 타입의 특징과 차이점에 대해서 알아보겠습니다. 문자형 테이터 타입 [문자 데이터 형식] 1. CHAR[(N)] : 고정길이 문자형 - char(10)에 문자 abc를 입력 시 3비트만 사용하고 나머지 7비트는 낭비가 될 수 있음. - 성별(M/F), 주민번호, 등 변하지 않는 고정된 값이 입력될 경우 사용하면 효율적 2. VARCHAR[(N | MAX)] : 가변 길이 문자형. N을 사용하면 1~8000까지 크기를 지정 가능, MAX로 지정하면 최대 2GB크기를 지정 가능 - VARCHAR(10)에 문자 abc를 입력 시 가.. 2022. 1. 14.
[MSSQL] 복원중 표시 오류 해결방법 / RESTORE MSSQL 디비를 복원하는 중 온라인으로 바로 변경되지 않고 "복원중" 이라는 상태가 표시되며 접속이 불가능 하게 되었다. 증상 RESTORE 명령으로 복원 후 사용자 데이터베이스 '복원 중' 상태 표시 원인 RESTORE DATABASE 쿼리 사용 시, NORECOVERY 옵션을 사용하게 되면 복원 완료 후 데이터베이스를 온라인 상태로 전환하지 않고 unrecovered state (복원 중인 상태) 로 나타나게 됩니다. 롤포워드, 롤백을 완료하고 즉시 온라인 하기 위해서는 NORECOVERY 가 아닌 RECOVERY 옵션을 사용해야 합니다. 해결방법 해결방법은 RESTORE 명령어를 RECOVERY 옵션을 사용하여 진행하면 됩니다. RESTORE DATABASE 디비명 WITH RECOVERY 2022. 1. 14.
[MSSQL] 배치잡(SQL Server 에이전트) 작업스케줄러 생성일 확인 MSSQL SQL Server에이전트에 배치잡 스케줄로 등록되어 설정한 시간에 자동으로 실행되는 프로시저들을 조회해보는 방법입니다. 해당 쿼리를 해당 배치잡이 언제 생성되었는지 알 수 있습니다. 더보기 SELECT A.job_id, A.name, A.enabled , description, A.date_created, A.date_modified , D.step_id, D.step_name, D.subsystem, D.command FROM msdb.dbo.sysjobs A INNER JOIN msdb.dbo.sysjobschedules B ON A.job_id = B.job_id INNER JOIN msdb.dbo.sysschedules C ON B.schedule_id = C.schedule_id I.. 2022. 1. 12.
[MSSQL] master/model/msdb 복원방법(시스템 데이터베이스) 시스템 데이터베이스인 master/model/msdb 이 손상을 입었을 경우 복원을 진행해합니다. 이번 시간에는 기존에 사용하고 있는 데이터베이스를 다른 서버로 이전할 경우 시스템 디비를 복원 방법에 대해서 기록합니다. 시스템 DB의 역할 master : 디스크 공간, 시스템 전체의 구성 정보, 계정 정보, 사용자 데이터베이스에 대한 정보 등 중요한 목록이 포함되어 있습니다. model : 사용자 데이터베이스를 생성할 때 기본 모델이 되는 데이터베이스 입니다. msdb : SQL Server 에이전트가 사용하는 데이터베이스로 예약된 작업등의 내용이 들어있습니다. 구성환경 SQL Server 2016 / Windows Server 2016 사전 검증 사항 1. SQL 서버 버전확인 신규 서버에 설치될 SQ.. 2021. 10. 7.
[MSSQL] hash, merge, Nested loop Join 실행계획 설명 이번시간에는 실행계획에서 볼수있는 조인의 3가지 방식에 대해서 알아보겠습니다. 일반적으로 알고 있는 조인의 종류는 다음과 같습니다. 1. INNER 2. LEFT OUTER 3. RIGHT OUTER JOIN 그리고 위의 3가지 조인은 내부적으로 아래의 방식으로 돌아가게 됩니다. (SQL 옵티마이저가 자동으로 적절한 실행계획을 만듬) 1. NESTED LOOP JOIN (중첩반복) 2. SORT MERGE JOIN (정렬병합) 3. HASH JOIN (해쉬매치) 내부적으로 발생하는 조인의 방식에 따라 SQL쿼리 성능이 달라질 수 있습니다. 테이블 및 인덱스 등을 고려하여 SQL 옵티머이저가 실행계획을 자동으로 생성하지만 옵션을 주어서 강제로 변경도 가능합니다. 아래에서 설명하는 내부적인 조인의 로직을 기.. 2021. 7. 28.
[MSSQL] FOREIGN KEY 연결된 테이블,키 찾기 (FOREIGN KEY 제약 조건에서 참조하므로 삭제할 수 없습니다) 업무상 불필요하여 특정 테이블을 삭제하려고 하는데 다음과 같은 메시지가 나오면서 테이블이 삭제가 되지 않는 경우가 있습니다. "FOREIGN KEY 제약 조건에서 참조하므로 삭제할 수 없습니다" 이럴 경우는 해당 테이블을 외래키로 참조하는 다른 테이블이 존재하고 있기 때문인데요. 외래키를 가지고 있는 테이블에 가서 키를 삭제하여 주시면 됩니다. 그런데 삭제 하려는 테이블의 외래키 제약조건은 sp_helpconstraint로 확인할 수 있지만 참조하는 다른 테이블은 확인이 불가능합니다. 이럴 때는 다음과 같이 하면 참조하고 있는 다른 테이블과 연결된 칼럼명을 확인할 수 있는 쿼리를 사용하면 되겠습니다. 1. 전체 PK, FK 조회하기 SELECT OBJECT_NAME(OBJECT_ID) AS NameofC.. 2021. 6. 16.
[MSSQL] 데이터베이스 확장 속성 조회 및 추가(sp_msforeachdb) 데이터베이스 목록이 많이 증가하면서 각각의 디비의 담당자와 업무가 무엇인지 구분하기가 힘들졌습니다. 그래서 오늘은 디비의 확장 속성을 이용해서 해당 DB의 담당자와 업무설명 추가하고 조회하는 방법에 대해서 알아보려고 합니다. 추가로 테이블,컬럼 확장속성 추가 및 조회하는 방법도 알아보겠습니다. DB 확장 속성 DB 확장 속성 추가 데이터베이스의 확장 속성을 추가하는 방법은 2가지가 있습니다. 첫번째는 GUI를 통해서 하는방법입니다. 1. 데이터베이스를 마우스로 우클릭 하고 "속성"을 클릭합니다. 2. 속성에 왼쪽 페이지 선택 부분의 리스트에서 "확장 속성"을 클릭합니다. 3. 왼쪽에 이름과 값을 입력할 수 있는 페이지가 활성화 됩니다. 4. 이름에는 담당자, 값에는 업무설명을 추가하고 확인을 눌러 저장을.. 2021. 6. 16.
[MSSQL] 클러스터형 테이블이란? (클러스터 인덱스가 있음) 오늘은 데이터베이스 테이블 중 힙 테이블에 대해서 알아보도록 하겠습니다. 클러스터형 테이블 - 클러스터형 테이블이란 클러스터형 인덱스가 있는 테이블을 말합니다. - 클러스터형 테이블에 저장되는 데이터는 정렬되어 테이블에 쌓이게 됩니다. - 클러스터형 테이블에는 비 클러스터형 인덱스를 1개 ~ 999개까지 만들 수 있습니다. (클러스터형 인덱스는 테이블에 1개만 생성할 수 있습니다.) 장점 및 단점 클러스터형 테이블의 장점 - 데이터가 입력될 때 순서의 정렬이 필요 하기 때문에 INSERT, UPDATE 효율이 좋지 않습니다. - 인덱스를 생성하기 때문에 데이터베이스 용량이 증가합니다. 힙 테이블의 단점 - 특정 데이터를 찾아 조회하는 SELECT 문에서 데이터 정렬이 되어있기 때문에 속도가 향상됩니다. .. 2021. 6. 2.
[MSSQL] 힙 테이블이란? (클러스터 인덱스가 없음) 오늘은 데이터베이스 테이블 중 힙 테이블에 대해서 알아보도록 하겠습니다. 힙 테이블 - 힙 테이블이란 클러스터형 인덱스가 없는 테이블을 말합니다. - 힙 테이블에 저장되는 데이터는 정렬되지 않고 순서대로 테이블에 쌓이게 됩니다. - 힙 테이블에는 비 클러스터형 인덱스를 1개 ~ 999개까지 만들 수 있습니다. 장점 및 단점 힙 테이블의 장점 - 데이터가 입력될 때 순서의 정렬이 필요 없음으로 INSERT,UPDATE 효율이 좋습니다. - 인덱스를 생성하지 않았기 때문에 데이터베이스 용량을 줄일 수 있습니다. 힙 테이블의 단점 - 특정 데이터를 찾아 조회하는 SELECT 문에서 데이터 정렬이 되어있지 않기 때문에 속도가 저하됩니다. 결론 대부분의 페이지가 조회 페이지들이 많기 때문에 특별한 경우가 아니라면.. 2021. 6. 2.
반응형