托管身份的 SQL Server 错误“AADSTS500133:断言不在其有效时间范围内”

问题描述 投票:0回答:1

我在 Azure 数据工厂中为 Azure SQL 数据库创建了链接服务。然后,我使用系统分配的身份在数据库中创建了一个用户。

CREATE USER [crestlinecapitalADF-preProd] FROM EXTERNAL PROVIDER
GO
sys.sp_addrolemember @rolename = N'db_datareader', @membername = N'crestlinecapitalADF-preProd'
GO
sys.sp_addrolemember @rolename = N'db_datawriter', @membername = N'crestlinecapitalADF-preProd'
GO
sys.sp_addrolemember @rolename = N'db_ddladmin', @membername = N'crestlinecapitalADF-preProd'
GO

脚本没有返回错误。看起来用户已创建并且角色已成功授予。

当我尝试执行 ADF 管道将数据从文件加载到表中时,它返回一个错误,指出该表不存在或未授予正确的权限。我认为问题在于加载数据之前截断表所需的权限。我尝试将 db_owner 角色授予系统管理身份,但没有成功。

最终,我决定删除链接服务并重新创建它。我什至删除了数据库用户crestlinecapitalADF-preProd。然而,这一次,当我尝试执行相同的脚本时,它返回了以下错误:

消息 33134,16 级,状态 1,第 1 行校长 无法解析“crestlinecapitalADF-preProd”。错误信息: 'AADSTS500133:断言不在其有效时间范围内。确保 在用户使用访问令牌之前确保其未过期 断言,或请求新的令牌。当前时间: 2024-12-13T04:38:21.1607509Z,断言到期时间 2024-12-13T02:50:36.0000000Z.

我多次尝试更改链接服务,希望重新生成令牌,但问题仍未解决。

azure-sql-database azure-data-factory azure-managed-identity
1个回答
0
投票

当我从 Azure SQL 中删除用户后尝试创建用户时,也遇到了相同的错误,如下所示:

enter image description here

导致错误的原因有多种,例如令牌颁发者与有效时间范围内的API版本不匹配、过期、格式错误、断言中的刷新令牌不是主刷新令牌等。当您删除用户令牌时,它就会过期,并且它会尝试仅使用该过期令牌连接新用户。

要解决此问题,您需要禁用 Azure 数据工厂的托管标识并再次启用它,然后尝试创建用户并为其分配角色

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.