vim / dbext可以使用集成安全性而不是sql-login来访问db

时间:2013-05-23 07:02:10

标签: sql-server windows vim dbext

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

我正在使用我们的一个sql-server-logins的细节来实现这个目标:

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

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

2 个答案:

答案 0 :(得分:1)

这个字符串工作正常:

type=SQLSRV:integratedlogin=1:dsnname=SQLOLEDB.1:srvname=boxname

答案 1 :(得分:0)

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

  1. 通过打开PowerShell并输入sqlcmd.exe并确保源路径以get-command sqlcmd开头,确保32位版本的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 readme建议):

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

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

  3. 除了:奇怪的是,从强制执行安全连接的服务器请求安全连接(-N)可能会出现错误消息,指出SSL Provider: The target principal name is incorrect,在这种情况下,您我想放弃-N