SQL 服务器 ODBC 驱动程序 linux 用户名 ''

Pat*_*fer 4 linux sql-server odbc driver

我为 linux 版本 13 安装了 Microsoft SQL 服务器 ODBC 驱动程序。

我可以使用用户名密码命令行登录,但不能使用 odbc.ini 中的用户名和密码登录

例子

curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo                                                                                                                                                                                                     yum install msodbcsql mssql-tools

[root@server01 etc]# cat odbc.ini

[MY_ODBC_DSN]

Driver = ODBC Driver 13 for SQL Server

Server = tcp:10.10.10.1,1433

Database = demo

UID = user1

PWD = password
Run Code Online (Sandbox Code Playgroud)

有效

isql -v MY_ODBC_DSN user1 password
Run Code Online (Sandbox Code Playgroud)

不工作

isql -v MY_ODBC_DSN

[28000][unixODBC][Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Login failed for user ''.
[ISQL]ERROR: Could not SQLConnect
Run Code Online (Sandbox Code Playgroud)

mee*_*dev 5

@Patrick,您无法从 odbc.ini 读取用户名和密码。我用 sqlcmd 尝试了这个,这是我验证它的方式。

sudo su
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-tools.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install mssql-tools unixodbc-dev
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

odbcinst.ini

[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.4.0
UsageCount=1
Run Code Online (Sandbox Code Playgroud)

数据库配置文件

[TestDB]
Server=myserver
Driver=ODBC Driver 13 for SQL Server
Run Code Online (Sandbox Code Playgroud)

命令行

sqlcmd -D -S TestDB -U myusername -P mypassword
Run Code Online (Sandbox Code Playgroud)

如果您想使用集成身份验证,请查看:

https://docs.microsoft.com/en-us/sql/connect/odbc/linux/using-integrated-authentication
Run Code Online (Sandbox Code Playgroud)