Sql server 如何将不安全程序集授予动态找到的用户名?

Sql server 如何将不安全程序集授予动态找到的用户名?,sql-server,Sql Server,我必须从一个遗留项目在SQL Server中注册一个DLL,糟糕的是我既没有DLL也没有源代码,我只有从数据库上的“创建脚本”选项获得的二进制字符串。我正在尝试使用以下代码: USE [master] DECLARE @CurrentUserName varchar(MAX) SET @CurrentUserName = SUSER_SNAME() SELECT @CurrentUserName GRANT UNSAFE ASSEMBLY TO @CurrentUserName 最后一行给了我

我必须从一个遗留项目在SQL Server中注册一个DLL,糟糕的是我既没有DLL也没有源代码,我只有从数据库上的“创建脚本”选项获得的二进制字符串。我正在尝试使用以下代码:

USE [master]
DECLARE @CurrentUserName varchar(MAX)
SET @CurrentUserName = SUSER_SNAME()
SELECT @CurrentUserName
GRANT UNSAFE ASSEMBLY TO @CurrentUserName
最后一行给了我一个错误:

@CurrentUserName附近的语法不正确。应为ID、NULL、PUBLIC或 引述

我创建这个脚本是为了在第一天给我的新团队成员一个脚本来设置他们的开发环境,而不给他们一本大手册和说明,因为我们了解到,由于我们的设置过程非常复杂,所以会发生很多错误


谢谢你的帮助

如果你需要使用一个类似于<代码> Grave<代码>的变量,考虑动态SQL。找到一个解决办法,但如果有一个方法,我仍然很好奇,我想做什么。如果你需要使用一个命令,比如“代码> Grave<代码>一个变量,考虑动态SQL。找到一个解决办法,但我还是很好奇,是否有什么方法可以帮助我实现我的目标。非常感谢!非常感谢你!
--You Have to use Dynamic SQL 

USE [master]
DECLARE @CurrentUserName VARCHAR(MAX),@String_SQL NVARCHAR(MAX)
SET @CurrentUserName = SUSER_SNAME()
SELECT @CurrentUserName
--GRANT UNSAFE ASSEMBLY TO @CurrentUserName

SET @String_SQL=''
SET @String_SQL =N'GRANT UNSAFE ASSEMBLY TO '+@CurrentUserName+''

PRINT @String_SQL
EXEC (@String_SQL)