Azure SQL中能否在创建Temporary Symmetric Keys的同一会话内删除该密钥
临时对称密钥同会话删除问题解答
你完全可以在创建临时对称密钥的同一会话中直接删除它,无需担心权限问题,相关逻辑说明如下:
- 权限逻辑:名称以
#开头的临时对称密钥是会话级隔离资源,仅创建它的会话可访问操作。创建密钥的主体默认持有该密钥的CONTROL权限,执行删除操作无需额外申请权限,无论该密钥是通过密码、证书还是其他密钥加密创建,同会话删除都不会触发权限报错。 - 残留现象说明:你观察到的断开连接后密钥仍存在于
tempdb.sys.symmetrickeys的表现属于SQL Server的后台惰性清理机制,这些残留密钥已经没有任何会话可以访问,会被后台进程定期回收,不会造成安全泄漏。 - 最佳实践:建议在同一会话使用完密钥后主动删除,尤其对于长生命周期的会话,既可以减少tempdb的冗余资源占用,也符合敏感资源最小存留时间的安全规范。
参考操作示例:
-- 创建临时对称密钥 CREATE SYMMETRIC KEY #TempBusinessKey WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = '自定义强密码'; -- 此处为使用密钥的业务逻辑(加密/解密操作) -- ... -- 使用完成后直接同会话删除 DROP SYMMETRIC KEY #TempBusinessKey;
内容的提问来源于stack exchange,提问作者Arpit A.
相关产品推荐
相关产品推荐

