我想在安装软件之前验证用户的登录信息。他们可以选择使用集成安全性或SQL登录。此登录不是也不应该是sysadmin角色,但这超出了本问题的范围。
在我看来,这应该像没有"初始目录"组成连接字符串一样简单。并验证登录。这应该连接到用户默认数据库,我们可以确保连接正常。
Azure SQL数据库不是这种情况。普通用户正常没有有效的默认数据库,因为它设置为master。用户无法访问master。
sqlcmd -U xxxUser -S xxxdatabases.database.windows.net
Password: Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : The server principal "xxxdatabases" is not able to access the database "master" under the current security context..
Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : Login failed for user 'xxxdatabases'..
Sqlcmd: Error: Microsoft ODBC Driver 11 for SQL Server : Cannot open user default database. Login failed..
我可能会使用管理帐户来检查用户是否可以访问任何现有数据库并将用户连接到该数据库。但这感觉就像一个愚蠢的解决方案,可能与我们自己的EULA冲突,因为我们不允许连接到随机数据库。
有没有人知道如何检查Azure SQL数据库上的登录?
答案 0 :(得分:1)
只需在命令行中指定数据库,即可直接连接:
sqlcmd -U xxxUser -S xxxdatabases.database.windows.net -d DatabaseName
Azure SQL数据库中的登录没有默认数据库,因为单个连接无法在常规SQL实例上的数据库之间切换。