哪个权利授予用户在SQL 2008中授予自己另一项权利的权利?

security sqlbulkcopy sql-server sql-server-2008

我需要在执行SqlBulkCopy之前授予db_datawriter并在之后删除它:

try
{
   "EXEC [db_mod].[sys].[sp_addrolemember] N'db_datawriter', N'my_user'" // via SqlCommand
   bulk.WriteToServer(table);
}
finally
{
   "EXEC [db_mod].[sys].[sp_droprolemember] N'db_datawriter', N'my_user'" // via another SqlCommand
}

但我收到一个错误:

用户无权执行此操作。

我该如何解决这个问题?

热门答案

MSDN sp_addrolemember告诉您需要哪些权限...

  • db_owner固定数据库角色的成员身份。
  • db_securityadmin固定数据库角色的成员身份。
  • 拥有该角色的角色的成员资格。
  • ALTER对该角色的权限

实际上,您需要处于db_securityadmin角色。

但是,为什么不通过GRANT持久保留INSERT / UPDATE权限?授予自己权利的权利意味着不需要任何更多权利的足够特权......



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因