SQL Server数据库:Can';我找不到明显存在的物体
编辑:如何向用户定义的类型授予exec权限 看起来“Bug2”是用户定义的类型SQL Server数据库:Can';我找不到明显存在的物体,sql,sql-server,tsql,sql-server-2012,Sql,Sql Server,Tsql,Sql Server 2012,编辑:如何向用户定义的类型授予exec权限 看起来“Bug2”是用户定义的类型 select * from sys.types where is_user_defined = 1 and name = 'Bug2' 现在要消除此错误,请执行以下操作: 对数据库“Bug2”对象的执行权限被拒绝 “abc”,模式“dbo” 我应该使用什么命令 我只是在玩弄别人的代码,突然遇到了这样一个问题: 如果我这样做 DECLARE @bugList Bug2 SELECT * FROM @bugLis
select * from sys.types
where is_user_defined = 1 and name = 'Bug2'
现在要消除此错误,请执行以下操作:
对数据库“Bug2”对象的执行权限被拒绝
“abc”,模式“dbo”
我应该使用什么命令
我只是在玩弄别人的代码,突然遇到了这样一个问题: 如果我这样做
DECLARE @bugList Bug2
SELECT *
FROM @bugList
那我就有结果了
但如果我这样做了
SELECT *
FROM Bug2
然后我得到一个
无效的对象名称“Bug2”
这是怎么回事
基本上,我正在尝试运行一个使用此“Bug2”的存储过程,由于存在一些权限问题,我在运行它时遇到以下错误:
对对象“Bug2”、数据库“abc”、架构“dbo”的执行权限被拒绝
所以我想做的就是:
GRANT EXEC ON Bug2 TO PUBLIC
但是SQL Server无法找到这个对象“Bug2”,因此抛出了一个错误
有人能帮忙吗?好的。使用以下工具使其正常工作:
GRANT EXECUTE ON TYPE::Bug2 to PUBLIC
谢谢 不使用
sys.types
而使用sys.objects
。如果Bug2
是一个表,则查询如下所示:
SELECT * FROM sys.objects WHERE name='Bug2' AND type='U'
它是一个(通常用于表值参数)。查看db_nm>可编程性>类型>用户定义的表类型,您将看到一个bug2
对象。您可以解决该对象上的权限问题(通过脚本或GUI)
脚本选项:
use [abc]
GO
GRANT EXECUTE ON TYPE::[dbo].[bug2] TO [public]
,Bug2是什么类型的。