2010-12-30 9 views

Antwort

2

3 Schritten, falls Sie bereits

  • CREATE LOGIN [mydomain\myuser] FROM WINDOWS; auf Serverebene nicht einrichten Login + Benutzer. MSDN
  • CREATE USER [mydomain\myuser] FROM LOGIN [mydomain\myuser]; auf der Ebene db. MSDN
  • Match user zur Rolle EXEC sp_addrolemember 'mydomain\myuser', 'db_denydatawriter'

Edit:

Dies verhindert, dass nur INSERT, UPDATE und DELETE direkt auf den Tischen

Es wird nicht Wicke Design stoppen. Das ist ddl_admin oder db_owner. Die Rechte von db_owner überschreiben alle anderen Berechtigungen, so dass der Ausschluss keine Auswirkungen hat.

Wenn Schreibvorgänge über gespeicherte Prozeduren erfolgen, bedeutet ownership chaining, dass Berechtigungen in einer Tabelle nicht überprüft werden. Also wird diese Antwort nicht funktionieren.

+0

Ich tat dies, der Benutzer kann noch die Tabellen ändern. –

+0

In welchen anderen Rollen sind sie? db_besitzer? – MartW

+0

@Mike: Bitte klären Sie "Tabellen ändern". Meinst du Datenänderungen oder Spalten hinzufügen usw.? Verwenden sie gespeicherte Procs, um Daten zu schreiben? – gbn

0
EXEC sp_addrolemember N'db_denydatawriter', N'Foo' 

Referenz here.