MS SQL Server Management Studio kullanmadan SQL Server'daki varsayılan veritabanımı nasıl değiştirebilirim?


166

Ben ancak çıkıyor SQL Server bir veritabanı düştü benim giriş , varsayılan olarak bırakılan veritabanını kullanmak için ayarlandı. Bağlantı iletişim kutusundaki 'seçenekler' düğmesini kullanarak ve bağlanılacak veritabanı olarak 'ana' seçeneğini seçerek SQL Server Management Studio'ya bağlanabilirim. Ancak, nesne gezgini içinde bir şey yapmaya çalıştığımda, varsayılan veritabanımı kullanarak bağlanmaya çalışır ve başarısız olur.

Herkes varsayılan veritabanımı nesne gezgini kullanmadan nasıl ayarlayacağını biliyor mu ?

Yanıtlar:


38

Sp_defaultdb ( Microsoft SQL Server'ın gelecekteki bir sürümünde kaldırılacak) alternatifi şunlar olabilir ALTER LOGIN:

ALTER LOGIN [my_user_name] WITH DEFAULT_DATABASE = [new_default_database]

Not: sp_defaultdbçözümün aksine kullanıcı ve veritabanı adları tırnak işaretleri olmadan sağlanır. Adın özel karakterleri varsa köşeli parantez gereklidir (en yaygın örnek, etki alanı \ kullanıcıadı olan ve parantez olmadan çalışmayan etki alanı kullanıcısı olacaktır).


1
Bu soru şimdi biraz yaşlanıyor. SQL 2005 kullanıyordum. Alter Login 2008 sürümüne kadar eklenmedi.
Martin Brown

@MartinBrown Evet, uzun süredir kullanıyorum sp_deafultdb. "Yeni" bir yol olduğuna şaşırdım.
Marek

Not: my_user_name veya database alanlarında tek tırnak işareti gerekmez ve hataya neden olabilir. Deneyimli ellere açıktır, ancak bunu bazen yapanlar için olmayabilir. Alanlar bitişik metni temsil ediyorsa köşeli ayraçlar isteğe bağlıdır.
iokevins

Ben bir grup üzerinden PROD veritabanına bağlanmak, bu yüzden sunucuda bireysel bir Giriş yok, yukarıdaki çalıştırmak için çalıştığınızda "DOMAIN \ myuser 'giriş değiştirilemez, çünkü yok veya sen izniniz yok. " daha da kötüsü, her biri bana sunucudaki birçok DB'lerden birine özel erişim sağladığı için birden fazla gruptayım. öneriler?
matao

1
Bir girişin varsayılan veritabanının ne olduğunu bulmak için: sys.server_principals'dan name, default_database_name öğesini seçin;
DocOc

215

Yapabileceğiniz şey, sp_defaultdb sistem saklı yordamını kullanarak varsayılan veritabanınızı ayarlamaktır. Yaptığınız gibi giriş yapın ve ardından Yeni Sorgu düğmesini tıklayın. Bundan sonra sp_defaultdb komutunu aşağıdaki gibi çalıştırın:

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

Gerçekten teşekkürler. Bir cazibe gibi çalıştı (ve bana db belirtmek için 'Seçenekler' diyalog hakkında öğretti).
penderi

Bu soru meta
abel

1
Bir AD grubundaysanız ve düzinelerce diğer geliştirici için varsayılan veritabanını değiştirmek istemiyorsanız çok iyi çalışmaz.
DOK

@DOK: Ama eğer girişiniz bu şekilde bozulursa diğer tüm geliştiriciler de öyle. Yani hepsini düzeltmek iyi bir şey olur mu?
Martin Brown

Bu özel SQL Server örneğinde bir düzine farklı veritabanı var. Hepimiz farklı bir varsayılan veritabanı isterdik. Her bir veritabanı için istenen varsayılan veritabanına sahip olabilmek için farklı bir kullanıcı grubu oluştursaydık, farklı veritabanlarını görmek isteseydik hepimizin bir grup farklı kullanıcı grubunda olması gerekirdi ve sonra istenen varsayılanı kaybederdik. Management Studio'da varsayılan bir veritabanını düzeltmenin bir yolu olsaydı, ama şimdiye kadar gerçekten işe yarayan bir yaklaşım bulamadım.
DOK

49

GUI yolunu yapmak için, girişinizi düzenlemeye gitmeniz gerekir. Özelliklerinden biri, o oturum açma için kullanılan varsayılan veritabanıdır. Oturum açma listesini Güvenlik düğümü altındaki Oturum Açma düğümü altında bulabilirsiniz. Ardından girişinizi seçin ve sağ tıklayın ve Özellikler'i seçin. Varsayılan veritabanını değiştirin ve hayatınız daha iyi olacak!

Sysadmin privs olan birisinin bunu yapmak veya önceki gönderiden sorguyu çalıştırmak için giriş yapabilmesi gerektiğini unutmayın.


bu iyi çalışıyor! sadece "master" yerine "master" db yazdı.
APPRICH

1
Sahip olduğum sorun, sysadmin olduğum ve varsayılan olarak ayarladığım veritabanını silmişti ve bu yüzden bu diyalog penceresine bile ulaşamadı.
Martin Brown

@MartinBrown, olabildiğince, herhangi bir tablo bırakmamıştım ve hala sorunuza yönlendirildim, ancak GUI çözümü ile daha rahat hissettim.
djv

41

Bu yazı sayesinde daha kolay bir cevap buldum:

  1. Sql Server Management Studio'yu açın

  2. Nesne Gezgini -> Güvenlik -> Girişler'e gidin

  3. Girişe sağ tıklayın ve özellikleri seçin

  4. Özellikler penceresinde varsayılan veritabanını değiştirin ve Tamam'a tıklayın.


1
StackOverflow'a hoş geldiniz ve bir cevap verdiğiniz için teşekkür ederiz. Markdown düzenleyicisinin özelliklerine göz atmak isteyebilirsiniz, böylece kod bloklarını, listeleri vb . Biçimlendirebilirsiniz . Stackoverflow.com/editing-help . Sizin için biçimlendirmeyi geliştirmek üzere cevabınızı düzenledim.
Paul Turner

Bu sorunun asıl amacı , kendi giriş hesabınız için varsayılan veritabanını sildiyseniz, açıkladığınız şeyin çalışmadığıdır . Benim özel durumumda sistemdeki tek yöneticiydim, bu yüzden aynı etkiyi elde etmek için başka birinin hesabını kullanamadım.
Martin Brown

@Mattijs "Herkes varsayılan veritabanımı nesne gezgini kullanmadan nasıl ayarlayacağımı biliyor mu?" Sorusunun son satırını okuduğunuzu umuyoruz. Bu sadece istediğin şey.
Rohit Vipin Mathews

2
Bu OP'nin sorusunu cevaplamamış olabilir, ama benimkini yanıtladı. Yararlı bir cevap.
CJ Dennis

1
Azure Veritabanlarında bu mümkün değildir: /
Squazz

14

Varsayılan DB'nizi değiştirme izniniz yoksa sorgularınızın üstünde manuel olarak farklı bir DB seçebilirsiniz ...

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

Diğer DB'ye izin verdiğiniz sürece çalışır


8
  1. Bağlantıyı Değiştir simgesine tıklayın
  2. Seçenekler <<
  3. Veritabanına bağlan açılır menüsünden db'yi seçin

Bazı nedenlerden dolayı bu benim için bazı durumlarda işe yaradı, bazılarında işe yaramadı.
levininja

3

ALTER LOGINKomutu kabul edilen cevapta olduğu gibi burada da tarif edeceğim.

Ama GUI sevgilisi için

  1. [SUNUCU INSTANCE] -> Güvenlik -> Girişler -> [GİRİŞİNİZ] 'e gidin
  2. [GİRİŞİNİZ] üzerine sağ tıklayın
  3. Sayfanın altındaki Varsayılan Veritabanı Seçeneğini Güncelle

Okumaktan bıktım !!! sadece aşağıdakilere bak

resim açıklamasını buraya girin



0

Bu, soruyu tam olarak cevaplayabilir veya yanıtlamayabilir, ancak hesabımı "varsayılan veritabanı" olarak oluşturduğum yeni bir veritabanına değiştirdiğimde bu soruna (ve soruya) rastladım. Sonra bu veritabanını sildim ve oluşturma komut dosyamı sıfırdan test etmek istedim. SSMS oturumunu kapattım ve geri dönecektim, ancak reddedildi - varsayılan veritabanında oturum açılamıyor hataydı. D'oh!

SSMS için oturum açma iletişim kutusunda, Seçenekler, Bağlantı Özellikleri'ne gidin masterve "Veritabanına bağlan" açılan kutusuna yazın . Bağlan'a tıklayın. Beni içeri aldım. Buradan şu komutu çalıştırabilirsiniz:

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

-1

Windows kimlik doğrulaması kullanıyorsanız ve kullanıcı adı ve parola ile kullanıcı olarak oturum açmak için bir parola bilmiyorsanız, bunu yapabilirsiniz: SSMS'deki giriş ekranında sağ alt taraftaki seçenekleri tıklayın, ardından bağlantı özellikleri sekmesine gidin . Ardından, erişiminizin olduğu başka bir veritabanının adını, nerede yazacağınızı, bağlantı kurmanıza izin verecek şekilde manuel olarak yazabilirsiniz. Ardından, varsayılan veritabanınızı değiştirmek için diğer önerileri izleyin

https://gyazo.com/c3d04c600311c08cb685bb668b569a67

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.