2013-01-02 17 views
11

Mam problem z używaniem SQL Server 2008 R2.Baza danych [dbName] jest niedostępna. (ObjectExplorer)

Niedawno miałem problem z moim komputerem i dlatego musiałem zrestartować okna i musiałem udzielić pozwolenia od jednego użytkownika innemu użytkownikowi (korzystając z funkcji zabezpieczeń w nieruchomościach). Jednak początkowo udzielając pozwolenia, to poprzez komunikat "Odmowa dostępu".

Po wielu badaniach przestał on generować ten błąd (użytkownik, któremu również musiałem udzielić uprawnień, nie był dostępny), co spowodowało wystąpienie kolejnego problemu, ale tym razem w programie SQL Server. Wytwarza to przesłanie;

The database [dbName] is not accessible. (ObjectExplorer)

Ten błąd występuje, gdy próbuję wybrać opcję rozwijaną, aby wyświetlić listę tabel i procedur przechowywanych w bazie danych SQL Server. Znalazłem wyjaśnienie tego na poniższy link;

http://www.microsoft.com/products/ee/transform.aspx?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1617&EvtSrc=MSSQLServer&EvtID=916

I następnie próbował wdrożyć jak tak;

USE msdb; 
GO 
GRANT CONNECT TO [DBName\MyName] ; 

CREATE DATABASE [DBNAME] ON PRIMARY 

Używanie utworzonego przeze mnie skryptu (na szczęście przed pojawieniem się tego problemu) w całej masie wiadomości;

Msg 15151, Level 16, State 1, Line 1
Cannot find the user 'DBName\MyName', because it does not exist or you do not have permission.
Msg 262, Level 14, State 1, Line 2
CREATE DATABASE permission denied in database 'master'.
Msg 5011, Level 14, State 9, Line 1
User does not have permission to alter database 'DBName', the database does not exist, or the database is not in a state that allows access checks.
Msg 5069, Level 16, State 1, Line 1 ...

Po tym pęczek błędów, stałem się powieść, a więc będzie dużo wdzięczny jeśli ktoś może dać mi jakieś informacje zwrotne w odniesieniu do tego, co można zrobić, aby rozwiązać ten problem. Twoje zdrowie.

+0

Czy naprawdę masz domenę o nazwie "DBName"? Czy nie powinno to być "ServerName"? W przeciwnym razie "DBName \ MyName" nie jest prawidłową nazwą logowania i prawdopodobnie nie jest prawidłową nazwą użytkownika bazy danych. – RBarryYoung

+0

@RBarryYoung Dzięki za odpowiedź, DBName była nazwą bazy danych, do której próbowałem uzyskać dostęp. Ale z powodu braku odpowiedniej nazwanej instancji odmówił mi dostępu do bazy danych. –

Odpowiedz

3

Zasadnym problemem jest udzielanie uprawnień bezpośrednio do logowania. Powinieneś utworzyć obiekty ról w bazie danych, a wszystkie uprawnienia w bazie danych powinny zostać przypisane do ról.

Podczas przenoszenia bazy danych na inny komputer (lub ponownej instalacji) jedyne czynności, które należy zmodyfikować, to logowanie do serwera i przypisywanie ról.

+0

W zasadzie komputer jest podłączony do serwera, ale mój indywidualny komputer był zależny od tego serwera. Ale gdy byłem z dala od pracy, wystąpił błąd, który pozwolił mi zalogować się jako właściciel, dlatego musiałem dać właścicielowi pozwolenie, aby móc zobaczyć wszystko, co wcześniej zrobiłem. Ponadto, po przeczytaniu o przypisaniach do ról, to właśnie zrobiłem (nie wiedząc, jaki jest właściwy termin). –

+0

@ gregory.bmclub, czy zrobiłeś SA SA? Na przykład. część lokalnej grupy administratorów? – Ben

+1

wydaje się, że nie jestem w stanie stworzyć SA, ponieważ mówi, że nie mam na to zgody. Nie mogę również utworzyć bazy danych. –

1

Jednym z możliwych problemów jest to, że masz dwie instancje bazy danych, więc musisz dezaktywować jedną instancję, jeśli baza danych jest otwarta i dostępna w eksploratorze serwerów w Visual studio bliskim połączeniu, a następnie przejdź do usług systemu Windows i zatrzymaj i uruchom ponownie SQL server service (MSSQL) następnie przejdź do Management studio i otwórz swoją bazę danych, należy otworzyć i możesz eksplorować tabele ze studia zarządzania.

1

Wygląda na to, że baza danych, do której próbujesz uzyskać dostęp, nie ma uprawnień administratora. Zamknij SSMS i otwórz go Uruchom jako administrator.