我正在尝试从SQL连接字符串中找到一种方法来执行“execute as user”命令。我有一个来自外部源的查询,我无法修改,还有一个已经使用execute as user进行安全设置的数据库。我唯一可以修改的是连接字符串。我一直在寻找并且在搜索中找不到任何相关内容。
在连接字符串中可以执行类似于“以用户身份执行”的内容吗?
如果是,怎么样?
使用SQL Server 2016 - SP1
编辑: 表中的用户具有与之关联的许多角色。每个唯一的角色组合都有一个用户创建(无法登录,因此您无法以该用户身份进行连接并获得访问权限)。该用户具有应用行级安全性的模式,因此根据用户的角色,他们只能看到允许的数据。使用“作为用户执行= [自动生成的用户]”,他们使用唯一权限模式模拟适当的用户,从而仅返回允许他们查看的数据。我将与用户建立连接,然后需要执行相同的execute as语句,但我无法修改实际查询,因此需要在连接字符串中完成。
答案 0 :(得分:0)
您无法通过连接字符串执行此操作,因为您必须已连接才能模拟用户。
连接字符串允许用户连接(即登录)到SQL实例,因此无法登录的用户无法使用它。相反,您必须以具有登录权限的用户身份进行连接,然后通过EXECUTE AS USER
模拟用户。