如何使用 Authentication = ActiveDirectoryInteractive 从 VBA 连接到 Azure SQL DB?
Posted
技术标签:
【中文标题】如何使用 Authentication = ActiveDirectoryInteractive 从 VBA 连接到 Azure SQL DB?【英文标题】:How do I connect to Azure SQL DB from VBA with Authentication = ActiveDirectoryInteractive? 【发布时间】:2019-10-03 06:31:37 【问题描述】:设置 cnSQL = New ADODB.Connection 'cnSQL.Open "ODBC;DRIVER=SQL Server;身份验证=ActiveDirectoryInteractive;数据库=XXXXX;数据源=XXXX.database.windows.net"
【问题讨论】:
【参考方案1】:这应该可以满足您的需求。
您必须下载适用于 SQL Server 的 ODBC 驱动程序 17,并且根据您的连接类型,您可以更新身份验证选项
Sub AdoOdbcExample()
Dim con As Object
Set con = CreateObject("ADODB.Connection")
con.Open _
"Driver=ODBC Driver 17 for SQL Server;" & _
"Server=tcp:yourserver.database.windows.net,1433;" & _
"Database=yourdb;" & _
"Trusted_Connection=no;" & _
"Authentication=ActiveDirectoryInteractive;" & _
"UID=youremail;"
con.Execute "UPDATE Clients SET FirstName='Gord' WHERE ID=5;"
con.Close
Set con = Nothing
'Authentication=ActiveDirectoryIntegrated
'Authentication=ActiveDirectoryInteractive
'ActiveDirectoryPassword
End Sub
【讨论】:
【参考方案2】:如果您登录到https://portal.azure.com/,然后打开您的 azure sql 数据库 - 而不是服务器,您可以在“设置”下为各种数据库连接(如 odbc)找到预配置的连接字符串:
ODBC:
ODBC(包括 Node.js)(SQL 身份验证)Driver=ODBC Driver 17 for SQL Server;Server=tcp:yourserver.database.windows.net,1433;Database=yourdb;Uid=yoursqluser;Pwd=your_password_here;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;
ODBC(包括 Node.js)(Azure Active Directory 密码身份验证)
Driver=ODBC Driver 17 for SQL Server;Server=tcp:yourserver.database.windows.net,1433;Database=yourdb;Uid=your_user_name;Pwd=your_password_here;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;Authentication=ActiveDirectoryPassword
ODBC(包括 Node.js)(Azure Active Directory 集成身份验证)
Driver=ODBC Driver 17 for SQL Server;Server=tcp:yourserver.database.windows.net,1433;Database=yourdb;Uid=your_user_name;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;Authentication=ActiveDirectoryIntegrated
另请注意,对于这种情况,您还需要以下驱动程序:
Download ODBC driver 17 for SQL server所以在我的例子中,我使用了以下 vba 代码和来自天蓝色门户的复制粘贴 odbc 连接字符串(SQL 身份验证)。
con.ConnectionString = "Driver=ODBC Driver 17 for SQL Server;Server=tcp:yourserver.database.windows.net,1433;Database=yourdb;Uid=yoursqluser;Pwd=your_password_here;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;"
con.Open
【讨论】:
以上是关于如何使用 Authentication = ActiveDirectoryInteractive 从 VBA 连接到 Azure SQL DB?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 GraphQL 自定义的 Authentication 类?
如何使用 GIDSignIn 或 GIDAuthentication 刷新 authentication.idToken?
如何使用 powershell 设置 IIS 的表单身份验证(system.web/authentication)的 overrideMode?
如何使用 Thymeleaf 配置 Spring Boot 并使用 sec:authentication 标签
如何使用 Authentication = ActiveDirectoryInteractive 从 VBA 连接到 Azure SQL DB?