我有一台使用Windows身份验证的SQL Server。
我想从Delphi应用程序连接到服务器。
默认情况下,SQL Server将采用启动连接进程的用户的凭据。
这意味着要更改登录,我目前有两个选择:
1.注销并以所需用户身份登录,然后运行我的应用程序
1.使用RunAs命令从命令行启动程序。
我想让用户从应用程序中提供凭据,并以该用户身份登录。是否可以通过操作ConnectionString或以编程方式更改当前进程的用户?
我找到的最接近的是this entry,它告诉我如何在特定凭据下启动另一个进程。我可以使用这种技术来创建一个“启动器”程序,该程序在从用户那里收集凭据后启动连接过程,但我真的想要更干净的程序。
我在这个项目中使用了Delphi 2010。
谢谢
2条答案
按热度按时间zqry0prt1#
我认为
LogonUser
和ImpersonateLoggedOnUser
的组合会对您起作用。这应该会更改当前进程正在运行的用户帐户。正如GBN提到的,在更改登录凭据之前,您可能必须断开所有活动连接。13z8s7eq2#
使用Scott W建议的方法,这段代码对我有效。其中一些可能需要根据您的特定网络环境进行调整。
这段代码可以这样命名: