MS SQL Server Management Studio를 사용하지 않고 SQL Server에서 기본 데이터베이스를 어떻게 변경합니까?


166

SQL Server에서 데이터베이스를 삭제했지만 삭제 된 데이터베이스를 기본값으로 사용하도록 로그인 한 것으로 나타났습니다 . 연결 대화 상자의 '옵션'버튼을 사용하고 연결할 데이터베이스로 '마스터'를 선택하여 SQL Server Management Studio에 연결할 수 있습니다. 그러나 객체 탐색기에서 무언가를 시도 할 때마다 기본 데이터베이스를 사용하여 연결을 시도하고 실패합니다.

누구나 객체 탐색기를 사용하지 않고 기본 데이터베이스를 설정하는 방법을 알고 있습니까?

답변:


38

sp_defaultdb의 대안 ( 향후 Microsoft SQL Server 버전에서 제거됨 )은 다음과 ALTER LOGIN같습니다.

ALTER LOGIN [my_user_name] WITH DEFAULT_DATABASE = [new_default_database]

참고 : sp_defaultdb솔루션 사용자와 달리 데이터베이스 이름은 따옴표없이 제공됩니다. 이름에 특수 문자가있는 경우 대괄호가 필요합니다 (가장 일반적인 예는 domain \ username이며 대괄호 없이는 작동하지 않는 도메인 사용자입니다).


1
글쎄요,이 질문은 지금 조금 낡아지고 있습니다. 당시 SQL 2005를 사용하고있었습니다. 로그인 변경은 2008 버전까지 추가되지 않았습니다.
Martin Brown

@MartinBrown 예, 저는 오랫동안 사용해 왔습니다 sp_deafultdb. 나는 "새로운"방법이 있다는 것에 놀랐다.
Marek

참고 : my_user_name 또는 데이터베이스 필드에는 작은 따옴표가 필요하지 않으며 오류가 발생할 수 있습니다. 경험이 많은 사람에게는 분명하지만 가끔은 그렇지 않은 사람들에게는 그렇지 않을 수도 있습니다. 필드가 연속 텍스트를 나타내는 경우 대괄호는 선택 사항입니다.
iokevins

그룹을 통해 PROD 데이터베이스에 연결하므로 서버에 개별 로그인이 없습니다. 위의 명령을 실행하려고하면 "로그인 'DOMAIN \ myuser'가 없거나 권한이 없습니다. " 각 그룹마다 서버의 많은 DB 중 하나에 대한 특정 액세스 권한을 부여하기 때문에 여러 그룹에 속합니다. 제안?
matao

1
로그인의 기본 데이터베이스를 찾으려면 다음을 수행하십시오. sys.server_principals에서 name, default_database_name을 선택하십시오.
DocOc

215

sp_defaultdb 시스템 저장 프로 시저를 사용하여 기본 데이터베이스를 설정하면됩니다. 완료 한대로 로그인 한 다음 새 쿼리 버튼을 클릭하십시오. 그런 다음 sp_defaultdb 명령을 다음과 같이 실행하십시오.

Exec sp_defaultdb @loginame='login', @defdb='master' 

정말 고마워. 매력처럼 일했고 db를 지정하는 '옵션'대화에 대해 가르쳐주었습니다.
penderi

이 질문은 메타
abel

1
AD 그룹에 속해 있고 수십 명의 다른 개발자를 위해 기본 데이터베이스를 변경하지 않으려는 경우 제대로 작동하지 않습니다.
DOK

@DOK : 그러나 로그인이 이런 식으로 중단되면 다른 모든 개발자도 마찬가지라고 가정합니다. 그래서 모두를 위해 그것을 고치는 것은 분명히 좋은 일입니까?
Martin Brown

이 특정 SQL Server 인스턴스에는 12 개의 서로 다른 데이터베이스가 있습니다. 우리는 모두 다른 기본 데이터베이스를 원할 것입니다. 각 데이터베이스에 대해 서로 다른 사용자 그룹을 생성하여 원하는 기본 데이터베이스를 가질 수 있다면, 다른 데이터베이스를보고자한다면 원하는 기본값을 잃게됩니다. Management Studio에서 기본 데이터베이스를 수정하는 방법이 있었으면 좋았지 만 지금까지 실제로 작동하는 방법을 찾지 못했습니다.
DOK

49

GUI 방식으로하려면 로그인을 편집해야합니다. 해당 등록 정보 중 하나는 해당 로그인에 사용되는 기본 데이터베이스입니다. 보안 노드 아래의 로그인 노드에서 로그인 목록을 찾을 수 있습니다. 그런 다음 로그인을 선택하고 마우스 오른쪽 버튼을 클릭하고 속성을 선택하십시오. 기본 데이터베이스를 변경하면 삶이 좋아질 것입니다!

sysadmin privs를 가진 사람은 로그인하거나 이전 게시물의 쿼리를 실행하기 위해 로그인 할 수 있어야합니다.


이것은 잘 작동합니다! "기본"대신 "마스터"db를 입력했습니다.
apprich

1
내가 겪고있는 문제는 내가 sysadmin이고 기본값으로 설정 한 데이터베이스를 삭제했기 때문에이 대화 상자를 열 수 없다는 것입니다.
Martin Brown

@MartinBrown은 테이블을 떨어 뜨리지 않았고 여전히 귀하의 질문으로 이어졌지만 GUI 솔루션에 더 편안하다고 느꼈습니다.
djv

41

이 게시물 덕분에 더 쉬운 답변을 찾았습니다.

  1. Sql Server Management Studio 열기

  2. 개체 탐색기로 이동-> 보안-> 로그인

  3. 로그인을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오.

  4. 그리고 속성 창에서 기본 데이터베이스를 변경하고 확인을 클릭하십시오.


1
StackOverflow에 오신 것을 환영합니다. 답변을 주셔서 감사합니다. 당신은 코드 블록, 목록 등 : 포맷 할 수 있도록은 마크 다운 편집기의 기능을 살펴 할 수 있습니다 stackoverflow.com/editing-help을 . 서식을 개선하기 위해 답변을 편집했습니다.
Paul Turner

이 질문의 핵심은 자신의 로그인 계정에 대한 기본 데이터베이스를 삭제 한 경우 설명한 내용이 작동하지 않는다는 것 입니다. 내 특별한 경우에 나는 시스템의 유일한 관리자 였으므로 다른 사람의 계정을 사용하여 같은 효과를 얻을 수 없었습니다.
Martin Brown

@Mattijs "객체 탐색기를 사용하지 않고 내 기본 데이터베이스를 설정하는 방법을 아는 사람이 있습니까?"라는 질문의 마지막 줄을 읽었기를 바랍니다. 그게 당신이 요청한 것입니다.
Rohit Vipin Mathews

2
이것은 OP의 질문에 대답하지 않았을 수도 있지만 내 대답에 대답했습니다. 유용한 답변입니다.
CJ Dennis

1
Azure Databases에서는 불가능합니다 : /
Squazz

14

기본 DB를 변경할 수있는 권한이 없으면 쿼리 상단에서 다른 DB를 수동으로 선택할 수 있습니다 ...

USE [SomeOtherDb]
SELECT 'I am now using a different DB'

다른 DB 에 대한 권한이있는 한 작동합니다


8
  1. 연결 변경 아이콘을 클릭하십시오
  2. 옵션 <<을 클릭하십시오.
  3. 데이터베이스에 연결 드롭 다운에서 db를 선택하십시오.

어떤 이유로 이것은 어떤 경우에는 저에게 도움이되었지만 다른 경우에는 효과가 없었습니다.
levininja

3

또한 ALTER LOGIN받아 들여진 대답과 같이 명령을 선호합니다. 여기에 합니다.

그러나 GUI 애호가에게는

  1. [서버 인스턴스]-> 보안-> 로그인-> [YOUR LOGIN]으로 이동하십시오.
  2. [YOUR LOGIN]을 마우스 오른쪽 버튼으로 클릭하십시오
  3. 페이지 하단의 기본 데이터베이스 옵션 업데이트

독서에 지쳤다 !!! 그냥 따라 봐

여기에 이미지 설명을 입력하십시오



0

이것은 질문에 정확히 대답 할 수도 아닐 수도 있지만, "기본 데이터베이스"로 만든 새 데이터베이스를 갖도록 계정을 변경했을 때이 문제 (및 질문)가 발생했습니다. 그런 다음 해당 데이터베이스를 삭제하고 처음부터 작성 스크립트를 테스트하려고했습니다. SSMS에서 로그 오프했고 다시 들어 가려고했지만 거부되었습니다. 기본 데이터베이스에 로그인 할 수 없다는 오류입니다. 도!

내가 한 것은 SSMS의 로그인 대화 상자에서 옵션, 연결 속성으로 이동 한 다음 master"데이터베이스에 연결"콤보 상자를 입력하십시오. 연결을 클릭하십시오. 안으로 들어갔습니다. 거기에서 다음 명령을 실행할 수 있습니다.

ALTER LOGIN [DOMAIN\useracct] WITH DEFAULT_DATABASE=[master]
GO

-1

Windows 인증을 사용하고 사용자 이름 및 비밀번호를 통해 사용자로 로그인하기위한 비밀번호를 모르는 경우 다음을 수행 할 수 있습니다. SSMS의 로그인 화면에서 오른쪽 하단의 옵션을 클릭 한 후 연결 특성 탭으로 이동하십시오. . 그런 다음 액세스 권한이있는 다른 데이터베이스의 이름을 수동으로 입력하여 연결 위치를 지정할 수 있습니다. 그런 다음 기본 데이터베이스 변경에 대한 다른 조언을 따르십시오.

https://gyazo.com/c3d04c600311c08cb685bb668b569a67

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.