日期:2014-05-19  浏览次数:20679 次

SET IDENTITY_INSERT权限问题,挑战高手
SET   IDENTITY_INSERT
执行权限默认授予   sysadmin   固定服务器角色和   db_owner   及   db_ddladmin   固定数据库角色以及对象所有者。

我现在新建了一个test用户,他只有db_datareader、public和执行a存储过程的权限,
a存储过程里面含有SET   IDENTITY_INSERT语句,当我用test这个用户登录上查询分析器。去执行存储过程a时出错,因为它没有权限执行SET   IDENTITY_INSERT这句。请问如何给test用户开放SET   IDENTITY_INSERT权限

注:sysadmin   、db_owner   、   db_ddladmin   这些权限都太高了,不能给test用户开放的。能否只单单开放一个  
SET   IDENTITY_INSERT权限

先谢了。

------解决方案--------------------

SET IDENTITY_INSERT
允许将显式值插入表的标识列中。

执行权限默认授予 sysadmin 固定服务器角色和 db_owner 及 db_ddladmin 固定数据库角色以及对象所有者。

把对应表的所有者改为test 不知行不行
哈哈,也没试过
------解决方案--------------------
那就没办法了

又不能改owber,又不能改更高的权限。。。。。
/残念

提交给另一个用户执行吧,用job方式
------解决方案--------------------
用 dbo 身份编写 a 存储过程(即 a 的所有者为 dbo)。

然后 grant execute on dbo.a to test

试试.
------解决方案--------------------
如果有存储过程执行权限的话,
即使存储过程中某些权限没有也应当可以执行存储过程;