6

Używam programu SQL Server 2008 Express Edition.Jak przyznawać uprawnienia do bazy danych dla uprawnień do schematu? Co ja robię źle?

Utworzyłem login, użytkownika, rolę i schemat. Zmapowałem użytkownika do loginu i przypisałem mu rolę.

Schemat zawiera wiele tabel i procedur składowanych.

Chciałbym, aby rola miała uprawnienia do wykonywania dla całego schematu.

Próbowałem przyznać uprawnienia do wykonywania przez studio zarządzania i poprzez wprowadzenie polecenia w oknie zapytania.

GRANT EXEC ON SCHEMA::schema_name TO role_name 

ale kiedy połączyć się z bazą danych przy użyciu studio zarządzania SQL (jako logowania stworzyłem) Po pierwsze nie widzę procedur przechowywanych, ale co ważniejsze, pojawia się błąd Odmowa dostępu przy próbie ich uruchomienia.

Opisana procedura składowana nie robi nic poza wybieraniem danych z tabeli w ramach tej samej wartości schma.

Próbowałem tworzenia procedurę przechowywaną i bez linii:

WITH EXECUTE AS OWNER 

To nie robi żadnej różnicy.

Podejrzewam, że popełniłem błąd podczas tworzenia mojego schematu lub istnieje gdzieś problem własności, ale naprawdę staram się, aby coś działało.

Jedynym sposobem, w jaki udało mi się wykonać procedury składowane, jest udzielenie uprawnień kontrolnych do roli, jak również wykonanie, ale nie uważam, że jest to poprawny, bezpieczny sposób postępowania.

Wszelkie sugestie/komentarze będą naprawdę mile widziane.

Dzięki.

+0

Czy zezwoliłeś na wykonywanie uprawnień użytkownikowi utworzonemu dla Sproc? –

Odpowiedz

4

Jest kilka problemów, które mogę zobaczyć w twoim przypadku.

Przede wszystkim musisz mieć przyznaną definicję widoku, aby móc zobaczyć obiekty w studio zarządzania.

Polecam jeśli chcesz rola mieć wszystkie uprawnienia,

GRANT EXECUTE, SELECT, INSERT, UPDATE, DELETE, VIEW DEFINITION 
    ON Schema::SchemaName TO [RoleName/LoginName] 

Również upewnić się właścicielem swojego schematu zdefiniowanego przez użytkownika jest „dbo”.

+1

UDOSTĘPNIJ JAKĄKOLWIEK DEFINICJĘ DLA [someUser] STAN WERSJI SERWEROWEJ WIZUALNEJ DLA [someUser]/* To są 2 inne uprawnienia do nadania "tylko do odczytu" wszystkiego * / – granadaCoder