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.