2017-06-26 53 views
1

我试图找到一种方法来执行从SQL连接字符串中的“执行用户”命令的等效。我有一个查询来自我无法修改的外部源,并且有一个数据库已经具有使用execute作为用户的安全设置。我唯一可以修改的是连接字符串。我一直在寻找所有的东西,并且无法在我的搜索中找到任何相关的东西。执行从sql连接字符串

可以在连接字符串内做类似于“以用户身份执行”的东西吗?

如果是,如何?

使用SQL Server 2016 - SP1

编辑:表中的 用户有一批与之相关联的角色。每个独特的角色组合都有一个用户创建(无法登录,因此无法以该用户身份进行连接并获得访问权限)。该用户具有应用行级安全性的架构,因此基于用户的角色,他们只能看到允许的数据。使用“以用户身份执行= [自动生成的用户]”,他们使用唯一权限模式模拟适当的用户,从而只取回他们允许看到的数据。我将与用户建立连接,然后需要执行相当于execute as语句的操作,但我无法修改实际查询,因此需要在连接字符串中完成。

+2

也许连接成你想模拟的用户(即连接字符串中的UserID和密码)? –

+0

不幸的是,无法做到这一点......用户模拟被设置为无法登录 –

+0

所以你想通过模仿不允许建立连接的用户执行一些SQL?这听起来像也许有什么东西没有安装好吗? –

回答

0

您无法通过连接字符串执行此操作,因为您必须已经连接以模拟用户。

连接字符串允许用户连接(即登录)到SQL实例,因此不能由无法登录的用户使用。相反,您必须以具有登录权限的用户身份进行连接,然后通过EXECUTE AS USER模拟用户。