python - 如何从Python连接/查询始终加密的Azure SQL?

标签 python azure azure-sql-database pyodbc

我的 Azure 数据库中有一个表,有 2 列,其中一列是 id ,另一个是value ,这是一个加密列。现在我想从 Python 连接、写入、读取表。对于普通表,以下是从 Python 连接的方法,它可以工作:

import pyodbc
cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1443;DATABASE='+database+';UID='+username+';PWD='+ password)

但由于它是一个包含加密列的表,因此我无法通过使用上述命令连接来写入/读取它。我相信我需要通过Trusted_connection=yes; ColumnEncryption=Enabled连接时,但我无法这样做。对于同样的问题,我们表示感谢。预先感谢您!

编辑1: 当我查询加密列时,它会给出加密值。如何解密并获取原始值? 另外我如何插入加密值?

最佳答案

事实证明这是可能的!

import pyodbc
cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1443;DATABASE='+database+';UID='+username+';PWD='+password';ColumnEncryption=Enabled;KeyStoreAuthentication=KeyVaultClientSecret;KeyStorePrincipalId='+client_id+';KeyStoreSecret='+client_secret)
c = cnxn.cursor()
sql = "select * from MyTable"
c.execute(sql)
print(c.fetchall())

插入:

sql = "insert into MyTable (id, number) values (?, ?)"
values = [1, 10]
c = cnxn.cursor()
c.execute(sql, values)
c.commit()

关于python - 如何从Python连接/查询始终加密的Azure SQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49853604/

相关文章:

python - 如何启动 python shell 并使用一些命令自动初始化它?

python - 将位转换为字节序列

Azure ClouddBlob 的 Properties.Length 返回 0

azure - Microsoft 令人困惑的 CRON 作业答案

database - 我需要在 SQL 脚本文件中自动执行 SQL Azure 数据库备份。我怎样才能这样做?

python - 根据.CSV格式的AVL(GPS)数据创建伪GTFS数据集

python - Pandas groupby : can I select an agg function by one level of a column MultiIndex?

c# - 使用容器实例在 Azure 中未启用访问 Swagger

c# - 使用 SqlBotDataStore 获取机器人状态会回退到 state.botframework.com

azure - 如何从安全网络连接到 Azure pass DB