it-swarm-eu.dev

SQL Server 2008: Databáze [dbName] není přístupná

Tuto chybu jsem dostal od jiné osoby a došly mi nápady. Mám přístup k této databázi bez problémů, databáze je v režimu MULTI_USER, osoba přijímající chybu je uživatel atd.

Databáze je READ_ONLY a dotyčný uživatel již dříve tuto databázi použil a má pouze oprávnění ke čtení databáze, takže není žádná šance, že se s nastaveními bude manipulovat.

Včera jsem přidal několik funkcí a musel jsem nastavit na SINGLE_USER a READ_WRITE, ale trojnásobně jsem zkontroloval, že db byl nastaven zpět na MULTI_USER. Nemohu se rozhodnout, jestli je to náhoda nebo kauzalita. V každém případě jsem na slepé uličce.

Zde je chybová zpráva:

The database [dbName] is not accessible. (Object Explorer)

----------------------------------------
Program Location: 

    at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.DatabaseNavigableItem.get_CanGetChildren()
    at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItem.RequestChildren(IGetChildrenRequest Request)
    at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ExplorerHierarchyNode.BuildChildren(WaitHandle quitEvent)

Nějaké zkušenosti s tímto druhem chyby?

6
Davenport

Obvykle je to způsobeno, když je výchozí databáze uživatele nastavena na databázi, ve které nemají oprávnění nebo je offline.

Řekněme například, že jsem si nastavil přihlašovací údaje v prodejní databázi, a pak jsem pravým tlačítkem myši na přihlašovací jméno v SSMS a změnil jsem výchozí databázi na master - ale nemáte Master v Master. Když se pokusíte připojit, přestože chcete prodejní databázi, přejdete ve výchozím nastavení do Master a zobrazí se tato chyba.

K tomu může také dojít, pokud někdo odejme vaše oprávnění v prodeji a nezmění vaši výchozí databázi na něco jiného.

Proto ráda nastavuji výchozí databáze všech uživatelů na TempDB. Uživatelské databáze mohou přicházet a odcházet, ale TempDB tam bude vždy. Navíc, pokud někdo náhodou vytvoří objekt, alespoň je to v odložené databázi namísto něčeho, jako je Master nebo Sales.

8
Brent Ozar

Tuto chybu jsem dostal pro některé uživatele. Zkusili jsme mnoho věcí. Nakonec jsem právě odstranil a znovu přidal uživatele a pak byli schopni vidět databáze.

1
Wayne