0

目前我可以使用vim标准dbext插件访问我们的数据库。

我正在使用我们的一个 sql-server-logins 的详细信息来实现这一点:

type=SQLSVR:user=userName:psswd=userPwrd:dsnname=SQLOLEDB.1:srvname=boxname

我可以更改此连接字符串,以便它使用我的登录凭据来访问服务器 - 以类似的方式SSMS?因此,如果在这台电脑上安装了 vim,它将使用登录到这台电脑的人的详细信息来访问数据库,即如果访问权限比我少的同事登录到这台电脑,那么 vim 将使用他的详细信息 - 他访问因此,数据将受到相应限制。

4

2 回答 2

1

这个字符串工作正常:

type=SQLSRV:integratedlogin=1:dsnname=SQLOLEDB.1:srvname=boxname
于 2013-05-26T17:30:08.750 回答
0

@whytheq 的答案适用于“集成 Windows 身份验证”,但如果您想使用随SQL Server Management Studio安装的Active Directory 集成身份验证进行连接,您需要:

  1. 通过打开PowerShellsqlcmd.exe并键入get-command sqlcmd并确保源路径以C:\Program Files (x86)\. 如果您不需要添加C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn到系统的 Path 环境变量(当然,在任何包含 64 位的路径之前SQLSRV.exe)。

  2. 告诉 dbext 使用SQLSRV而不是OSQL执行查询,方法是将其添加到您的_vimrc(理想情况下,augroupdbext 自述文件所建议的那样):

    let g:dbext_default_SQLSRV_bin = 'sqlcmd'
    let g:dbext_default_SQLSRV_cmd_options = '-b -G -N'
    

    请注意,-G告诉SQLSRV使用 Active Directory 集成身份验证,并且-N用于加密连接。


另外:奇怪的是,-N从强制安全连接的服务器请求安全连接 () 可能会导致错误消息指出SSL Provider: The target principal name is incorrect,在这种情况下,您需要删除-N

于 2017-07-31T17:44:49.807 回答