提问人:Skylter 提问时间:9/19/2023 最后编辑:AswinSkylter 更新时间:9/20/2023 访问量:61
使用 SPN 连接到 Azure SQL 数据库Connect to Azure SQL Database using SPN
Connect to Azure SQL Database using SPN
问:
可以使用 SPN(已在我的 Azure 订阅中创建了一个 SPN,并在 ADF 中成功使用)连接到 Azure SQL Server 数据库 xxxx.database.windows.net。
我的目标是避免 SQL 身份验证(我目前在 RODBC::odbcDriverConnect 中使用),并避免 2FA,因为 R 代码将在远程计算机中自动运行。
现在我使用:
con <- RODBC::odbcDriverConnect('driver={SQL Server};服务器=XXX.database.windows.net;数据库=XXX;Uid=XXX;Pwd=XXX!')
感谢社区。
已尝试创建 ODBC DSN,但无法使用 SPN 选项进行连接。
答:
0赞
simon-pearson
9/20/2023
#1
我不能说使用 R 或 RODBC 库,但这在 .NET 中肯定是可能的。尽管以下内容与 .NET 相关,但我希望它应该有足够的共同点来帮助您,您可以将第二步移植到使用 R/RODBC 中:
- 将服务主体设置为数据库的管理员。为此,请按照以下说明操作:预配 Azure AD 管理员(SQL 数据库)。无论您在客户端应用程序上使用哪种语言/库,这都是相同的。
- 若要从 .NET 客户端应用程序连接到上述 SQL Server 上的数据库,请使用类似于客户端应用程序代码中列出的代码:使用 Active Directory 服务主体身份验证。也许你可以把它移植到 R?
评论
0赞
Skylter
9/21/2023
谢谢@simon-pearson。已管理以创建“空”DSN,然后在 R 中创建连接期间指定。con <- odbc::dbConnect(odbc::odbc(), dsn = '<DSN Name>', Server = 'XXX.database.windows.net', database = 'XXX', uid = '<SPN_Client_ID>', pwd = '<SPN_Client_Secret _Value>', encoding = 'windows-1252')
评论