Как я могу изменить свою базу данных по умолчанию в SQL Server без использования MS SQL Server Management Studio?

Я удалил базу данных из SQL Server, однако оказалось, что мой логин был настроен на использование удаленной базы данных по умолчанию. Я могу подключиться к SQL Server Management Studio, нажав кнопку «Параметры» в диалоговом окне подключения и выбрав «master» в качестве базы данных для подключения. Однако всякий раз, когда я пытаюсь сделать что-либо в обозревателе объектов, он пытается подключиться с использованием моей базы данных по умолчанию и терпит неудачу.

Кто-нибудь знает, как установить мою базу данных по умолчанию без использования обозревателя объектов?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
170
0
256 315
11
Перейти к ответу Данный вопрос помечен как решенный

Ответы 11

Что вы можете сделать, так это установить базу данных по умолчанию с помощью системной хранимой процедуры sp_defaultdb. Войдите в систему, как вы это сделали, и нажмите кнопку «Новый запрос». После этого просто запустите команду sp_defaultdb следующим образом:

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

Спасибо большое. Работал как шарм (и научил меня диалогу «Параметры» для указания db).

penderi 03.09.2010 17:24

Этот вопрос поднял вопрос о мета

abel 07.01.2011 17:18

Не работает так хорошо, если вы находитесь в группе AD и не хотите менять базу данных по умолчанию для десятков других разработчиков.

DOK 15.11.2011 00:01

@DOK: Но я предполагаю, что если ваш логин нарушен таким образом, то же самое и со всеми другими разработчиками. Значит, исправить это для всех было бы неплохо?

Martin Brown 15.11.2011 16:13

Что ж, на этом конкретном экземпляре SQL Server есть дюжина различных баз данных. Нам всем нужна другая база данных по умолчанию. Если бы мы создали разные группы пользователей для каждой базы данных, чтобы она могла иметь желаемую базу данных по умолчанию, тогда нам всем пришлось бы находиться в кучу разных групп пользователей, если бы мы хотели видеть разные базы данных, и тогда мы потеряли бы желаемое значение по умолчанию. Хотелось бы, чтобы в Management Studio был способ исправить базу данных по умолчанию, но пока я не нашел подход, который действительно работает.

DOK 15.11.2011 18:35

@DOK: рассматривали ли вы возможность предоставить каждому разработчику собственный логин в SQL Server, а затем использовать роли SQL Server вместо групп AD?

Martin Brown 14.03.2012 13:22

@MartinBrown Десятки разработчиков, десятки баз данных, разработчики (подрядчики) постоянно приходят и уходят, переходя между проектами. Кто-то должен будет управлять всеми этими логинами и ролями. В целях безопасности вы хотите ограничить доступ для тех, кому это нужно. Таким образом, разработчик может ждать, пока администратор предоставит разрешение на другую базу данных. Между тем, когда приходят аудиторы, они обвиняют вас в устаревших разрешениях для людей, которым они больше не нужны. Иногда лучше использовать самый простой подход: добавить или удалить человека в группы AD. Не существует универсального подхода.

DOK 14.03.2012 15:59

Чтобы сделать это с помощью графического интерфейса, вам нужно изменить свой логин. Одно из его свойств - это база данных по умолчанию, используемая для этого входа в систему. Вы можете найти список учетных записей в узле «Имена входа» в узле «Безопасность». Затем выберите свой логин, щелкните правой кнопкой мыши и выберите «Свойства». Измените базу данных по умолчанию и ваша жизнь станет лучше!

Обратите внимание, что кто-то с правами системного администратора должен иметь возможность войти в систему, чтобы сделать это или выполнить запрос из предыдущего сообщения.

это отлично работает! просто набрал там "master" db вместо "default".

apprich 04.05.2011 10:48

Проблема, с которой я столкнулся, заключалась в том, что я был системным администратором и удалил базу данных, которую я установил по умолчанию, и поэтому не мог даже добраться до этого диалогового окна.

Martin Brown 12.03.2012 15:03

@MartinBrown, как бы то ни было, я не уронил ни одной таблицы, и меня все еще привели к вашему вопросу, но я чувствовал себя более комфортно с решением с графическим интерфейсом.

djv 13.06.2014 21:40

Если у вас нет прав на изменение БД по умолчанию, вы можете вручную выбрать другую БД в верхней части запросов ...

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

Будет работать, пока у вас есть разрешение на БД Другие

Благодаря эта почта я нашел более простой ответ:

  1. Откройте Sql Server Management Studio

  2. Перейдите в Обозреватель объектов -> Безопасность -> Логины

  3. Щелкните правой кнопкой мыши имя входа и выберите свойства

  4. И в окне свойств измените базу данных по умолчанию и нажмите ОК.

Добро пожаловать в StackOverflow и благодарим за ответ. Возможно, вы захотите взглянуть на функции редактора Markdown, чтобы вы могли форматировать блоки кода, списки и т.д .: stackoverflow.com/editing-help. Я отредактировал ваш ответ, чтобы улучшить форматирование для вас.

Paul Turner 19.02.2013 16:57

Весь смысл этого вопроса в том, что то, что вы описали, не работает, если вы удалили базу данных по умолчанию для учетной записи твой собственный. В моем конкретном случае я был единственным администратором в системе, поэтому не мог использовать чужую учетную запись для достижения того же эффекта.

Martin Brown 19.02.2013 22:29

@Mattijs Надеюсь, вы прочитали последнюю строчку вопроса «Кто-нибудь знает, как установить мою базу данных по умолчанию без использования проводника объектов?». Это именно то, что вы просили сделать.

Rohit Vipin Mathews 02.08.2013 14:07

Возможно, это не ответило на вопрос ОП, но ответило на мой. Это полезный ответ.

CJ Dennis 07.12.2016 02:31

Это невозможно в базах данных Azure: /

Squazz 28.09.2017 10:38
  1. Щелкните значок «Изменить подключение».
  2. Щелкните Параметры <<
  3. В раскрывающемся списке "Подключиться к базе данных" выберите базу данных.

По какой-то причине в некоторых случаях это сработало для меня, а в других - нет.

levininja 21.03.2017 19:27

Если вы не можете войти в SQL Server:

sqlcmd –E -S InstanceName –d master

Справка: https://support.microsoft.com/en-us/kb/307864

Если вы используете проверку подлинности Windows и не знаете пароль для входа в систему в качестве пользователя с помощью имени пользователя и пароля, вы можете сделать это: на экране входа в систему в SSMS щелкните параметры в правом нижнем углу, затем перейдите на вкладку свойств подключения. . Затем вы можете ввести вручную имя другой базы данных, к которой у вас есть доступ, там, где написано, что позволит вам подключиться. Затем следуйте другому совету по изменению базы данных по умолчанию.

https://gyazo.com/c3d04c600311c08cb685bb668b569a67

Ответ принят как подходящий

Альтернативой sp_defaultdb (которая будет удален в будущей версии Microsoft SQL Server) может быть ALTER LOGIN:

ALTER LOGIN [my_user_name] WITH DEFAULT_DATABASE = [new_default_database]

Примечание: в отличие от решения sp_defaultdb имена пользователей и базы данных указаны без кавычек. Скобки необходимы, если в имени были специальные символы (наиболее распространенным примером будет пользователь домена, который является domain\username и не будет работать без скобок).

Что ж, этот вопрос уже устарел. В то время я использовал SQL 2005. Alter Login не добавлялся до версии 2008 года.

Martin Brown 21.11.2017 18:19

@MartinBrown Да, я использую sp_deafultdb целую вечность. Я был удивлен, что есть «новый» способ.

Marek 21.11.2017 19:49

Примечание: одинарные кавычки вокруг полей my_user_name или базы данных не требуются и могут вызвать ошибку. Это очевидно для опытных рук, но, возможно, не так для тех, кто делает это время от времени. Квадратные скобки необязательны, если поля представляют собой непрерывный текст.

iokevins 10.01.2019 22:26

Я подключаюсь к базе данных PROD через группу, поэтому у меня нет индивидуального входа на сервер, когда я пытаюсь запустить указанное выше, я получаю «Невозможно изменить имя входа 'DOMAIN \ myuser', потому что он не существует, или вы нет разрешения. ". Хуже того, я нахожусь в нескольких группах, потому что каждая дает мне определенный доступ к одной из многих БД на сервере. предложения?

matao 01.02.2019 05:58

Чтобы узнать, что такое база данных по умолчанию для входа в систему: выберите имя, default_database_name из sys.server_principals;

DocOc 18.03.2019 21:50

@matao Вы можете сделать это, заключив в скобки пользователя (и базу данных, если необходимо): ALTER LOGIN [DOMAIN \ User] WITH DEFAULT_DATABASE = [SERVER \ Database]

Spazmoose 08.02.2020 04:43

Это может или не может точно ответить на вопрос, но я столкнулся с этой проблемой (и вопросом), когда изменил свою учетную запись, чтобы иметь новую базу данных, которую я создал в качестве моей «базы данных по умолчанию». Затем я удалил эту базу данных и захотел протестировать свой сценарий создания с нуля. Я вышел из SSMS и собирался вернуться, но мне было отказано - не могу войти в базу данных по умолчанию, это была ошибка. Ооо!

Я сделал следующее: в диалоговом окне входа в SSMS перейдите в «Параметры», «Свойства подключения», затем введите master в поле со списком «Подключиться к базе данных». Щелкните Подключиться. Заставил меня. Оттуда вы можете запустить команду, чтобы:

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

Я также предпочитаю команду ALTER LOGIN, как в принятом ответе, и описанную здесь

Но для любителя графического интерфейса

  1. Перейдите в [ЭКЗЕМПЛЯР СЕРВЕРА] -> Безопасность -> Логины -> [ВАШ ВХОД].
  2. Щелкните правой кнопкой мыши [ВАШ ВХОД]
  3. Обновите параметр базы данных по умолчанию внизу страницы

Устал читать !!! просто посмотрите на следующие

Нажмите на параметры в диалоговом окне подключения к серверу и в свойствах подключения, вы можете выбрать базу данных для подключения при запуске. Лучше оставить значение по умолчанию, что сделает master по умолчанию. В противном случае вы можете случайно запустить sql не в той базе данных после подключения к базе данных.

Из вопроса: «Я могу подключиться к SQL Server Management Studio, используя кнопку« Параметры »в диалоговом окне подключения и выбрав« master »в качестве базы данных для подключения. Однако всякий раз, когда я пытаюсь что-либо сделать в проводнике объектов, он пытается подключиться, используя мою базу данных по умолчанию, и не удается ». Хотя они, возможно, исправили это с тех пор, это довольно старый вопрос.

Martin Brown 26.08.2020 13:35

Другие вопросы по теме