2010-12-16 5 views
1

Ich bin ein Systemadministrator einer Webfarm, und derzeit können meine Entwickler eine Verbindung zum SQL Server als Systemadministratoren herstellen.Erstellen einer benutzerdefinierten Serverrolle in SQL 2005

Nun, ich möchte, dass sie in der Lage sein, eine Verbindung zu allen DBs herzustellen, aber nur die Berechtigung haben, das DB-Schema zu modifizieren und so KEINE neuen DBs zu erstellen oder Berechtigungen zu ändern.

ist es sowieso ich kann eine benutzerdefinierte Serverrolle erstellen und konfigurieren, welche Berechtigungen es hat?

+1

würden nicht Gruppen von Entwicklern einzelnen Datenbanken zugewiesen? Sicher arbeiten nicht alle Entwickler an allen Datenbanken? Wenn ich darüber nachdenke! Warum lassen Sie die Entwickler das Schema ändern: bringen Sie sie in Skriptänderungen, legen Sie diese in SCC und geben Sie sie an DBA ... –

+1

Das Problem ist, waren nicht so eine große Firma und unser Entwicklerteam besteht aus nur 5 Personen, also sie Ändere auch die DB und entwickle die Anwendung. Sie benötigen den Zugriff auf den DB, aber nicht den COMPLETE-Zugriff. – shaharmor

+0

und wie geht es ihnen (und sie), wenn eine Chnage etwas kaputt macht? Sag mal, ein Wechsel am Freitag nachmittag? Ich hätte gedacht, dass man es den Entwicklern erlauben würde, DBs zu erstellen, wäre weniger ernst, als ihnen zu erlauben, Änderungen vorzunehmen. Aber hey, was weiß ich ... –

Antwort

0

Ich würde sie in die folgenden Datenbankrollen einfügen, da ich glaube nicht, dass es eine Serverrolle gibt, die Ihre Anforderungen erfüllt.

db_datareader 
db_datawriter 
db_ddladmin 

Dann entfernen Sie sie aus der Serverrolle sysadmin.

Ich glaube, Sie dann DENY Anweisungen erteilen können, damit sie nicht mit den CREATE, ALTER, DROP DATABASE Aussagen.

z.B.

DENY CREATE DATABASE to UserXYZ

ich nicht getestet haben, so bin ich nicht 100% sicher, ob dies möglich ist.

Wenn Sie sich nicht db_ddladmin Berechtigung in der master Datenbank geben, dann werden sie nicht in der Lage sein, alle neue Datenbanken zu erstellen.

+0

Also muss ich über alle DB gehen und alle meine Entwickler zu den Datenbankrollen db_datareader, db_datawriter, db_ddladmin DB hinzufügen? – shaharmor

+0

Ich denke, das wäre die beste Option hier. Ich nehme an, dass alle Ihre Entwickler in einer einzigen Gruppe sind, der Sie auch Berechtigungen zuweisen können? Sie könnten ein Skript erstellen, um die ganze Arbeit für Sie zu erledigen, und dann einfach über Ihre DBs laufen. – codingbadger

+0

Ich verwende keine WINDOWS NT-Berechtigungen, da der Server remote ist, nicht in der Domäne meines Unternehmens. Gibt es überhaupt eine SQL-Gruppe zu erstellen? und setze SQL Benutzer hinein? – shaharmor

Verwandte Themen