如何在tsql(FreeTDS命令行工具)中指定哪个数据库(不是"master")

How to specify which database (not "master") in tsql (FreeDTS command line tool)

我实际上正在尝试通过依赖于 FreeTDS 的模块 pymssql 从 Python 连接到 Azure 上的 MS SQL 服务器。我只是无法让它发挥作用。我找到了据说用于测试 FreeTDS 连接的命令行工具 tsql。而且,我无法连接 tsql。关于这一点,我有一个非常具体的问题。

如何在 tsql 工具中指定哪个 "database"。 Fx 如果我使用dbeaver,我必须指定数据库,"ava-iot"。使用 man tsql 并没有告诉我如何指定另一个数据库。

当我尝试时:

$  tsql -H uepbua32ii.database.windows.net -p 1433 -U Azure_SQL_Reader_Temporary -P XXXXXX

我得到:

"The server principal "Azure_SQL_Reader_Temporary" is not able to access the database "master" under the current security context."

这告诉我,它正在专门尝试连接到名为 master 的数据库。那么我如何告诉它尝试数据库ava-iot

发生这种情况的原因是您的用户 Azure_SQL_Reader_Temporary 将默认数据库设置为 master。你也可以改变它。但是要使用 -D 参数回答有关如何使用 tsql 执行此操作的问题。

tsql -H uepbua32ii.database.windows.net -p 1433 -D dbname -U Azure_SQL_Reader_Temporary -P XXXXXX

祝你好运!