Windows 模拟和 SQL 权限



我在这个问题中使用了这个技术来模拟对数据库具有管理员权限的Windows用户。我认为这将允许该过程更改表等(如果我以那个人的身份登录,我可以这样做)。我的连接字符串使用 IntegratedSecurity 在提示用户输入数据库管理员用户名和密码后,我模拟该用户,然后重新连接到数据库。我以为这将允许我创建表格等,但没有......

我还需要执行其他操作才能授予程序对数据库的(临时)管理员权限吗?

我尝试过用EXECUTE AS LOGIN = @user模拟,但它并不满意 - 我是否需要向 SQL 提供密码才能使其正常工作?

您可以向要使用的登录名添加角色,也可以授予特定权限。第二种通常是首选方法,因为您可以更精细地向帐户提供访问权限。

您可能遇到

连接池问题。当进程关闭连接时,连接实际上并未关闭,而是转到进程连接池。下次该进程尝试打开连接时,如果池中的连接与请求的新连接具有相同的连接字符串,它将从池中获取一个连接。因此,您可能根本没有获得新的连接,而是使用原始打开器的身份验证打开的连接。

我能看到的唯一解决方法是为管理员用户使用不同的连接字符串:添加或删除没有区别的子句(例如"MARS Connection=true"或其他东西)。这应该行得通。

干杯-

最新更新