2017-12-03 369 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