Tak, jest to możliwe dzięki kilku uprawnieniom.
Po pierwsze - aby utworzyć bazę danych - musisz udzielić uprawnienia na poziomie serwera Create Any Database
. To uprawnienie działa tak, jak się wydaje - moc tworzenia bazy danych. Uwaga ta jest nie dając stałą rolę serwera dbcreator do logowania, ponieważ stała rola serwera daje alter / Usuń uprawnienia dowolnej bazy danych. Create Any Database
pozwala loginowi mieć tę władzę tylko nad bazami danych, które posiadają. To da również możliwość przywrócenia.
(Więc wykonując TYLKO „Utwórz dowolną bazę danych” - dajesz możliwość utworzenia nowej bazy danych, ale unikasz możliwości usunięcia lub zmiany DOWOLNEJ bazy danych, które można dostać za pomocą rolę dbcreator stałe serwera)
Aby udzielić tego uprawnienia „Utwórz dowolną bazę danych” -
use [master]
GO
GRANT CREATE ANY DATABASE TO [LoginName]
GO
Aby móc uruchamiać DBCC CHECKDB
i usuwać bazy danych - wystarczy stała rola bazy danych db_owner. Zapewnia to wszystko, o co prosisz. Uwaga: Użytkownik zapewnia również użytkownikowi możliwość wybierania, usuwania, obcinania, aktualizowania i wstawiania za pomocą db_owner
. Lubię myśleć o tym jak sysadmin
w bazie danych.
Będziesz stosował to uprawnienie tylko do bazy danych, na której zamierzasz mieć tę możliwość. To pozwoli ci kontrolować, które bazy danych użytkownik może upuszczać, przywracać lub sprawdzać. Wszystkie bazy danych, w których użytkownik nie otrzymał tych uprawnień, będą bezpieczne od tego użytkownika wykonującego te czynności
Aby to zrobić, najpierw mapuj login na użytkownika bazy danych:
USE [DatabaseName]
GO
CREATE USER [UserName] FOR LOGIN [LoginName]
GO
A następnie dodaj tego użytkownika do db_owner
roli (Działa w SQL Server 2012 i nowszych):
ALTER ROLE [db_owner] ADD MEMBER [frank]
GO
W przypadku programu SQL Server 2008 trzeba użyć systemowej procedury składowanej, aby dodać członka roli jako komentator poniżej słusznie wskazany:
EXEC sp_addrolemember 'db_owner', 'frank';
Możesz to wszystko zrobić również poprzez GUI. Informacje logowania, które zrobiłbyś w folderze zabezpieczeń w SSMS na poziomie instancji: Kliknij prawym przyciskiem myszy login -> Właściwości -> Zabezpieczenia. Na poziomie bazy danych zrobiłbyś to przez folder bezpieczeństwa na poziomie bazy danych: kliknij prawym przyciskiem myszy i wybierz nowego użytkownika -> wybierz login, którego chcesz używać z listy logowania do serwera / podaj nazwę użytkownika bazy danych -> przejdź do kartę członkostwa, aby wybrać członkostwo w roli.
System pomocy programu SQL Server, Books Online, jest fantastycznym źródłem większości pytań dotyczących uprawnień - jeśli stwierdzisz, że musisz przypisać inne uprawnienia. Po prostu wyszukaj komendę T-SQL, której chcesz udzielić uprawnień , aw artykule zwykle znajduje się sekcja Zezwolenia dla tej komendy, która informuje, jakie uprawnienia są wymagane do wykonania tej akcji. Możesz na przykład zobaczyć artykuł dla DBCC CHECKDB - około 7/8 w dół tego artykułu to sekcja uprawnień.