2017-12-03 371 views
-1

插入/更新SQL Server 2012中的行而未將sysadmin角色分配給域用戶。用戶擁有db_reader數據庫中的db_writer會員如果不是系統管理員,SQL Server無法插入行

行插入/更新通常

當域用戶沒有給出sysadmin角色沒有錯誤,但沒有行插入/更新

+1

向我們展示正在執行的代碼。還有任何相關的表定義和這些表上的任何觸發器。 – RBarryYoung

回答

0

檢查,這可能幫助你訪問

db_datawriter db_datawriter角色就像db_datareader角色一樣,它可以隱式訪問數據庫中的表和視圖。它也可以被用戶或者用戶所屬角色的顯式DENY阻止。但是,與db_datareader不同的是,db_datawriter提供了INSERT,UPDATE和DELETE權限。同樣,由於權限是隱含的,因此您不會在sys.database_permissions中看到這些權限。和db_datareader一樣,您必須檢查此角色的成員身份才能確定審計事件中的實際權限。

db_datawriter角色爲數據庫中的所有表和視圖提供對INSERT,UPDATE和DELETE的隱式訪問。 在SQL Server 2005及更高版本中,顯式的DENY將阻止對對象的訪問。 通常開發人員不是生產中此角色的成員,除非所有用戶都是。 儘管不如db_datareader常見,但在正常用戶的生產環境中使用此角色並不罕見。 應用程序偶爾會需要這個角色。 創建用戶定義的數據庫角色並明確定義權限仍然優於使用此角色。

+0

我明白db_reader和db_writer角色。重點是,除非我的域用戶具有sysadmin服務器角色,否則他們無法將記錄添加/更新到db中。我不希望他們是sys_admin這是一個安全風險。 – user7421969