使用Python在Azure SQL上启用TDE

4ktjp1zp  于 2023-06-24  发布在  Python
关注(0)|答案(4)|浏览(123)

我是Python的新手,我正在尝试编写一些小脚本来修复我的Azure环境。我正在尝试在Azure SQL数据库上测试启用TDE,但我看不到任何示例代码来帮助我。
使用TransparentDataEncryptionStatus命令是否正确?我真的不知道从这里去哪里。
这是Azure函数

mssql_client = SqlManagementClient(credentials, sql_subscription)
database_settings = mssql_client.databases.create_or_update(sql_resource_group, sql_server, sql_db, TransparentDataEncryptionStatus

接下来怎么办?

pxy2qtax

pxy2qtax1#

您可以使用Transact-SQL在Python中管理透明数据加密:

ALTER DATABASE [databasename] SET ENCRYPTION ON

下面是示例代码:

import pyodbc
server = '<server>.database.windows.net'
database = '<database>'
username = '<username>'
password = '<password>'
driver= '{ODBC Driver 17 for SQL Server}'
cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute('ALTER DATABASE [databasename] SET ENCRYPTION ON')
cnxn .commit()

希望这能帮上忙。

tcbh2hod

tcbh2hod2#

使用TransparentDataEncryptionStatus命令是否正确?
是的!你的方向是对的。

create_or_update方法创建或更新数据库的透明数据加密配置。

我在你的代码中看到的唯一变化是正确地传递TDE,应该如下所示:

database_settings = mssql_client.transparent_data_encryptions.create_or_update(sql_resource_group, sql_server, sql_db, status=TransparentDataEncryptionStatus.Enabled)

database_settings = mssql_client.transparent_data_encryptions.create_or_update(sql_resource_group, sql_server, sql_db, status='Enabled')

请查找文档here

ffscu2ro

ffscu2ro3#

我创建了一篇博客文章,展示了在Azure SQL DB上设置BYOK TDE所需的步骤,基本上由两个步骤组成。a.设置服务器密钥将密钥设置为加密保护器
更多关于它在我的文章在这里:https://techcommunity.microsoft.com/t5/azure-database-support-blog/enabling-tde-on-azure-sql-db-server-using-python/ba-p/3840472
核心如果它在这里(部分代码):

tde = ServerKey(
    server_key_type=KeyType,
    uri=KeyURI
    )

server_key = sql_client.server_keys.begin_create_or_update(
    GROUP_NAME,
    SERVER,
    SERVER_KEY,
   tde
 ).result()

print("Attempt to apply the server key as encryption protector... ")
sql_client.encryption_protectors.begin_create_or_update(
    GROUP_NAME,
    SERVER,
    "current",
    {
        "server_key_name":SERVER_KEY,
        "server_key_type":KeyType
    }
)
pes8fvy9

pes8fvy94#

database_settings = mssql_client.transparent_data_encryptions.create_or_update(
    group_name, server_name, database_name,
    status=TransparentDataEncryptionStatus.enabled)

相关问题