📜  Linux 机器上的 Microsoft SQL Server Active Directory 身份验证(1)

📅  最后修改于: 2023-12-03 15:02:44.633000             🧑  作者: Mango

Linux机器上的Microsoft SQL Server Active Directory身份验证

在Linux系统上,开发人员经常需要连接Microsoft SQL Server数据库。而为了确保安全性,通常使用Active Directory身份验证来验证用户身份并授权访问数据库。

安装及配置ODBC Driver for SQL Server

在Linux系统上连接Microsoft SQL Server需要安装ODBC Driver for SQL Server。你可以从Microsoft官网下载驱动,并按照安装指南做相应的安装和配置。配置完成后,你需要配置ODBC数据源和ODBC配置文件,以下是相关命令行示例:

# 配置ODBC数据源
$ vim /etc/odbc.ini
[mydatasource]
Driver=ODBC Driver 17 for SQL Server
Server=myserver
UID=myusername
PWD=mypassword

# 配置ODBC配置文件
$ vim /etc/odbcinst.ini
[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.4.so.2.1
UsageCount=1
配置Kerberos身份验证

Microsoft SQL Server通常使用Kerberos身份验证进行用户身份验证和授权。您需要在Linux上配置Kerberos密钥表和krb5.conf文件。以下是相关命令行示例:

# 配置密钥表
$ ktutil
ktutil:  addent -password -p myusername@MYDOMAIN.COM -k 1 -e RC4-HMAC
Password for myusername@MYDOMAIN.COM: mypassword

# 配置krb5.conf文件
$ vim /etc/krb5.conf
[libdefaults]
default_realm = MYDOMAIN.COM
dns_lookup_kdc = true
dns_lookup_realm = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true

[realms]
MYDOMAIN.COM = {
  kdc = mydomain.com
  admin_server = mydomain.com
}

[domain_realm]
.mydomain.com = MYDOMAIN.COM
mydomain.com = MYDOMAIN.COM
在Python中使用pyodbc连接Microsoft SQL Server

在Python中使用pyodbc连接Microsoft SQL Server需要安装pyodbc库。你可以使用pip install pyodbc安装pyodbc库。以下代码演示了如何在Python代码中使用pyodbc连接Microsoft SQL Server:

import pyodbc 
conn_str = (
    r'DRIVER=ODBC Driver 17 for SQL Server;'
    r'SERVER=myserver;'
    r'DATABASE=mydatabase;'
    r'Trusted_Connection=yes;'
    r'Authentication=ActiveDirectoryIntegrated;'
)
conn = pyodbc.connect(conn_str)
cursor = conn.cursor()
SQLCommand = ("SELECT * FROM mytable")
cursor.execute(SQLCommand)
results = cursor.fetchall()
for row in results:
    print(row)

以上就是Linux机器上的Microsoft SQL Server Active Directory身份验证的介绍和示例代码。通过这篇文章,相信你已经了解了如何在Linux上实现Microsoft SQL Server Active Directory身份验证并连接数据库。