是否可以连接到微软Azure与认证使用Active Directory数据库SQL Server数据库工具箱R2020b吗?

27日视图(30天)

接受的答案

MathWorks支万博1manbetx持团队
编辑:MathWorks支万博1manbetx持团队 2021年7月19日
R2020b,没有直接具体对Active Directory的内置支持身份验证数据库工具箱;万博1manbetx然而它应该仍然能够在MATLAB与这些工作。
为了连接到微软Azure SQL Server使用Azure Active Directory身份验证,您将需要6.0 MS SQL JDBC驱动程序或更新;下面的例子都是基于7.0版本(如9.1 MS SQL JDBC驱动程序版本,依赖司机的改变,你需要MSAL库而不是ADAL进行身份验证)。
对于Windows ActiveDirectoryIntegrated |指令
注意:
Linux指令后可以找到下面的“ActiveDirectoryPassword”方法部分。
ActiveDirectoryIntegrated认证,只需加载jdbc驱动程序,使sqljdbc_auth。dll可以在Java库路径中,相同的方式,你会设置为“本地”Microsoft SQL Server集成安全,见:
//www.tianjin-qmedu.com/help/database/ug/microsoft-sql-server-jdbc-windows.html bt5dht6
然后连接到数据库使用:
康涅狄格州=数据库(“myDatabasse”,,,
“com.microsoft.sqlserver.jdbc.SQLServerDriver”,
(" jdbc::状态"置疑" / / myServer.database.windows.net: 1433;”
“加密= true; trustServerCertificate = false;”
“hostNameInCertificate = * .database.windows.net;”
”loginTimeout = 30,验证= ActiveDirectoryIntegrated;数据库= '])
你需要更新与实际的数据库名称“myDatabase”和“myServer”与实际的服务器地址。
ActiveDirectoryPassword(所有平台)
ActiveDirectoryPassword设置更为复杂。
1。添加Microsoft SQL JDBC驱动程序以及adal4j包它需要ActiveDirectoryPassword加上他们所有的依赖项的前面通过创建一个javaclasspath静态Java类路径。txt偏好目录:
> >编辑(fullfile (prefdir,“javaclasspath.txt”))
和清单中所有必需的文件按“< >”的标签,例如:
< >之前
c: \ \路径\ \ accessors-smart-1.2.jar
c: \ \路径\ \ activation-1.1.jar
c: \ \路径\ \ adal4j-1.6.3.jar
c: \ \路径\ \ asm-5.0.4.jar
c: \ \路径\ \ commons-codec-1.11.jar
c: \ \路径\ \ commons-lang3-3.5.jar
c: \ \路径\ \ gson-2.8.0.jar
c: \ \路径\ \ javax.mail-1.6.1.jar
c: \完整\路径\ \ jcip -注释- 1.0 - 1. - jar
c: \ \路径\ \ json-smart-2.3.jar
c: \ \路径\ \ lang-tag-1.4.4.jar
c: \ \路径\ \ mssql-jdbc-7.0.0.jre8.jar
c: \ \路径\ \ nimbus-jose-jwt-6.5.jar
c: \ \路径\ \ oauth2-oidc-sdk-5.64.4.jar
c: \ \路径\ \ slf4j-api-1.7.21.jar
看到以下相关的文章在网站上了解更多关于下载Java包加上它的所有依赖项,如果你有一个Maven依赖参考:
//www.tianjin-qmedu.com/matlabcentral/answers/713843-can-i-load-java-classes-into-matlab-r2020b-using-maven
2。在MATLAB连接之前,确保运行以下命令:
java.lang.System.clearProperty (“javax.xml.transform.TransformerFactory”)
这返回java.xml.transform。TransformerFactory其默认的Java设置。MATLAB通常会覆盖该设置将使第三方Java类与一个老撒克逊变压器,这是与adal4j虽然不相容。我们重置到默认这样adal4j再次可以使用默认的Java XML变压器。
3所示。连接到数据库使用:
康涅狄格州=数据库(“myDatabase”,“user@domain.com”,“我的密码”,
“com.microsoft.sqlserver.jdbc.SQLServerDriver”,
(" jdbc::状态"置疑" / / myServer.database.windows.net: 1433;”
“加密= true; trustServerCertificate = false;”
“hostNameInCertificate = * .database.windows.net;”
”loginTimeout = 30,验证= ActiveDirectoryPassword;数据库= '])
你需要设置实际数据库名称、用户名、密码和服务器地址。
ActiveDirectoryIntegrated (Linux)
Azure Microsoft SQL Server还支持Act万博1manbetxiveDirectoryIntegrated非windows平台上通过Kerberos身份验证。这同样适用与MATLAB相结合:
1。确保在您的系统上安装Kerberos客户机支持(如U万博1manbetxbuntu安装以下软件包:“krb5-user libpam-krb5 libpam-ccreds auth-client-config”)。2。为Kerberos密码学在Java中你可能会需要无限的力量。MATLAB通常不配置的Java运行时环境。在你的地区是否允许无限的力量加密,您可以配置在MATLAB如下:a。为MATLAB版本R2018b之前,下载“Java加密扩展(JCE)无限力量管辖政策文件”的甲骨文网站,适用于Java版本中使用MATLAB和将它们应用于Jave安装在MATLAB(发现在sys / Java / jre / glnxa64 / MATLAB安装jre目录内)。b。R2018b MATLAB版本和更新、编辑文件sys / java / jre / glnxa64 / jre / lib / security / java。安全在MATLAB安装,取消(删除#在前):
#crypto.policy =无限
3所示。确保Kerberos是正确配置和初始化一个会话使用kinit”,看到下面的和/或Kerberos为您的Linux发行版的文档:https://docs.microsoft.com/en gb/sql/connect/jdbc/connecting -使用azure -活动-目录- authentication?view=sql -服务器- 2017 # set-kerberos-ticket-on-windows-linux-and-mac
4所示。继续步骤1和2ActiveDirectoryPassword(所有平台)所需的库添加到MATLAB类路径和重置XML变压器设置。
5。连接使用:
康涅狄格州=数据库(“myDatabasse”,,,
“com.microsoft.sqlserver.jdbc.SQLServerDriver”,
(" jdbc::状态"置疑" / / myServer.database.windows.net: 1433;”
“加密= true; trustServerCertificate = false;”
“hostNameInCertificate = * .database.windows.net;”
”loginTimeout = 30,验证= ActiveDirectoryIntegrated;数据库= '])
1评论
罗杰香槟
罗杰香槟 2022年2月16日
编辑:罗杰香槟 2022年2月16日
这将是伟大的也有一个例子,它使用一个(OAuth2)访问令牌相关应用程序注册(服务主体, 用户主体),我目前获得按 这篇文章 。我只是不知道如何使用它。
我的理解从上面最后一个代码片段是我可以通过JDBC连接器通过数组的“自定义”传递的参数。有人能确认吗?
提前谢谢!

登录置评。

更多的答案(0)

s manbetx 845


释放

R2020b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!