2009-09-21 86 views
4

我正在使用LinqToSQL和可信連接來處理數據庫選擇/更新/插入/刪除。在過去,我一直使用存儲過程,並且只授予對數據庫中特定存儲過程的應用程序池標識的執行權限。這是我的第一個LinqToSql項目(我真的很喜歡它有多大幫助)。我不希望授予應用程序池標識的dbo訪問權限以使LinqToSql正常工作(但如果建議那麼我不介意)。我可以授予應用程序池標識什麼類型的權限,以便LinqToSql具有最低權限?或者我應該只使用dbo權限並完成它?SQL Server用戶應授予LinqToSql什麼權限?

按照KristoferA's answer這是我授予數據庫的應用程序池標識的權限:
EXEC sp_addrolemember 'db_datareader', 'app_pool_identity'
EXEC sp_addrolemember 'db_datawriter', 'app_pool_identity'

不完全一樣的安全級別爲只授予執行權限所需的存儲過程,但我考慮到我剛剛通過使用Linq2SQL獲得的巨大發展收益,它非常好。這比授予完整的dbo訪問要好。

回答

1

的db_datareader和db_datawriter是不夠的,如果你只是想讀取並沒有與模式變化和東西亂搞寫入數據...

0

LinqToSQL將創建動態生成的SQL。因此,它需要完全訪問數據操作語言命令(插入,更新,刪除)。您的應用程序帳戶不應該需要訪問數據定義語言命令(創建,刪除,更改等)。