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权限先谢了。

解决方案 »

  1.   


    SET IDENTITY_INSERT
    允许将显式值插入表的标识列中。执行权限默认授予 sysadmin 固定服务器角色和 db_owner 及 db_ddladmin 固定数据库角色以及对象所有者。把对应表的所有者改为test 不知行不行
    哈哈,也没试过
      

  2.   

    谢谢楼上的:没试过,那个表的所有者不能改,一定要是dbo
      

  3.   

    那就没办法了又不能改owber,又不能改更高的权限。。
    /残念提交给另一个用户执行吧,用job方式
      

  4.   

    用 dbo 身份编写 a 存储过程(即 a 的所有者为 dbo)。然后 grant execute on dbo.a to test试试.
      

  5.   

    to rfq(任凤泉):
    <quote>
    如果有存储过程执行权限的话,
    即使存储过程中某些权限没有也应当可以执行存储过程;
    </quote>
    不行地,我有给test用户执行a存储过程的权限,当存储过程执行到SET IDENTITY_INSERT
    时就报错,存储过程也不会往后面执行了