【发布时间】:2011-09-05 15:02:23
【问题描述】:
我在将 SQLCLR 程序集添加到数据库中时遇到问题,但我的一位同事没有问题。尽管我们确实有不同级别的访问权限,但我们无法弄清楚为什么我会收到我收到的错误消息。
这是我的代码:
USE [mydatabase]
GO
CREATE ASSEMBLY [My.Assembly]
AUTHORIZATION [dbo]
FROM 'C:\Program Files\MyStuff\My.Assembly.dll'
WITH PERMISSION_SET = UNSAFE
GO
这是我的错误:
消息 300,第 14 级,状态 1,第 3 行
对象“服务器”、数据库“主服务器”上的不安全组件权限被拒绝。
想法?
【问题讨论】:
-
这表明您正在将程序集添加到
master数据库。这是正确的吗? -
你使用的登录名是
sysadmin角色的成员吗? -
@Neil Knight:这就是问题所在,我不知道为什么它说“数据库'master'”。我有 'USE [mydatabase]' 因为我试图将程序集插入到 'mydatabase'
-
如果指定了
PERMISSION_SET = UNSAFE,则需要sysadmin固定服务器角色的成员身份。 -
@NeilKnight 和 MStodd:不,错误消息并不表明程序集被添加到
masterDB,这只是登录和管理的地方,这是一个问题登录的服务器级权限。此外,这是一个 MSDN 文档错误,指出需要sysadmin角色的成员身份。将某人添加到该角色是一个非常糟糕的主意。错误消息中说明了所需的权限:UNSAFE ASSEMBLY。详情请查看我的answer :)。
标签: sql-server sql-server-2008 permissions sqlclr