我正在配置新的 SQL Server 2008 R2,当我尝试使用类似
的语句向用户授予对存储过程的执行权限时,出现以下错误grant exec on [schemaName].[StoredProcedureName] TO userName
我收到的错误:
Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.
我可以授予其他权限,例如对同义词的选择权限。我还可以创建登录名并根据登录名创建用户,并授予用户数据写入者和数据读取者角色。
我拥有 public、serveradmin 和 sysadmin 服务器角色。我在尝试授予权限的数据库中具有 db_owner 角色。
我以前从未遇到过这个问题。
我错过了什么?
最佳答案
我明白了为什么我收到这条消息:
Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.
这是因为我尝试授予权限的用户拥有这些对象的架构。
例如,存储过程之一是mySchema.usp_CreateUser()
,用户名是“appUser”。 “appUser”拥有模式“mySchema”。由于用户拥有该模式,因此用户可以执行该过程。无需授予用户exec权限。
关于sql-server - SQL Server : Cannot grant, 拒绝或撤销对 sa、dbo、实体所有者、information_schema、sys 或您自己的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20149647/