SQL Server 2008: jak nadać uprawnienia nazwie użytkownika?

102

Muszę mieć możliwość ustanowienia połączenia ODBC za pomocą uwierzytelniania programu SQL Server.

W jaki sposób w programie SSMS mogę nadać użytkownikowi uprawnienia do posiadania WSZYSTKICH PRAW do określonej bazy danych?

czy istnieje sposób, aby to zrobić graficznie za pomocą SSMS?

l --''''''--------- '' '' '' '' '' ''
źródło

Odpowiedzi:

139

Jeśli chcesz nadać użytkownikowi wszystkie uprawnienia do odczytu, możesz użyć:

EXEC sp_addrolemember N'db_datareader', N'your-user-name'

To dodaje domyślną db_datareaderrolę (uprawnienia do odczytu wszystkich tabel) do tego użytkownika.

Istnieje również db_datawriterrola - która daje użytkownikowi wszystkie uprawnienia ZAPISU (WSTAW, AKTUALIZUJ, USUŃ) na wszystkich tabelach:

EXEC sp_addrolemember N'db_datawriter', N'your-user-name'

Jeśli chcesz być bardziej szczegółowy, możesz użyć GRANTpolecenia:

GRANT SELECT, INSERT, UPDATE ON dbo.YourTable TO YourUserName
GRANT SELECT, INSERT ON dbo.YourTable2 TO YourUserName
GRANT SELECT, DELETE ON dbo.YourTable3 TO YourUserName

i tak dalej - możesz szczegółowo przyznać uprawnienia SELECT, INSERT, UPDATE, DELETE do określonych tabel.

Wszystko to jest bardzo dobrze udokumentowane w MSDN Books Online for SQL Server .

I tak, możesz to również zrobić graficznie - w SSMS przejdź do bazy danych, a następnie Security > Userskliknij prawym przyciskiem myszy użytkownika, któremu chcesz nadać uprawnienia, a Propertiesna dole zobaczysz „Członkostwo w roli bazy danych”, w którym możesz dodać użytkownika do ról db.

tekst alternatywny

marc_s
źródło
jakoś nie mam węzła Użytkownicy w drzewie zabezpieczeń w SSMS, tylko Loginy i Poświadczenia - poza tym, aby sp_addrolemember działało, użytkownik musi być zmapowany do danej bazy danych, w przeciwnym razie "użytkownik ... nie istnieje w bazie danych "podano błąd ( stackoverflow.com/questions/7232559/ ... - zobacz komentarze do zaakceptowanej odpowiedzi) - mogłem
mapować
@marc_s, Jak nadać uprawnienia związane z konkretną tabelą za pomocą SSMS?
CAD
1
@Chathuranga: przeczytaj doskonałe, bezpłatnie dostępne dokumenty!
marc_s
61

Jeśli naprawdę chcesz, aby miały WSZYSTKIE prawa:

use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go
Joe Stefanelli
źródło
18

Jak poniżej. To uczyni właściciela bazy danych użytkownika.

EXEC sp_addrolemember N'db_owner', N'USerNAme'
SQLMenace
źródło