2010-12-30 19 views

答えて

2

3段階、場合には、サーバーレベルですでに

  • CREATE LOGIN [mydomain\myuser] FROM WINDOWS;ログイン+ユーザーを設定していません。 MSDN
  • はdbレベルである。役割へMSDN
  • Match userEXEC sp_addrolemember 'mydomain\myuser', 'db_denydatawriter'

編集:

これが唯一のINSERT、UPDATEを防ぎ、それはテーブルのデザインを変更停止しませんテーブル

上で直接削除します。これはddl_adminまたはdb_ownerです。 db_owner権限は他のすべての権限よりも優先されるため、denyは無効です。

書き込みがストアドプロシージャ経由の場合、ownership chainingは、テーブルでアクセス権がチェックされていないことを意味します。だからこの答えはうまくいきません。

+0

私はこれを行いましたが、ユーザーは引き続きテーブルを変更できます。 –

+0

他にどのような役割がありますか? db_owner? – MartW

+0

@Mike:「テーブルを修正する」を明確にしてください。データの変更や列の追加などを意味しますか?彼らはデータを書き込むためにストアドプロシージャを使用していますか? – gbn

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

参考文献here