sql-server - SQL Server : Cannot grant, 拒绝或撤销对 sa、dbo、实体所有者、information_schema、sys 或您自己的权限

标签 sql-server sql-server-2008 permissions

我正在配置新的 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/

相关文章:

sql-server - 使用立即/本地窗口查看表变量的内容

SQL Server 如何减少存储过程授予的内存量

sql - 在 SQL "IN"子句中使用元组

sql - 如何获取此类数据?

android - Phonegap 版本 : How to explicitly ask for permissions?

mysql - Ubuntu 20.04 - 停止了 MySQL。现在它不会启动(错误 13,权限被拒绝)

sql - 如何在 SQL Server 中创建接受一列数据的函数?

linq - Entity Framework : There is already an open DataReader associated with this Command

sql - 获取行中日期值之前的最新日期

ios - requestRecordPermission 什么都不做