The target principal name is incorrect. Cannot generate SSPI context

如图:



最近公司停电,也设置过 DNS ,访问内测网页时常常出现上图的错误!~

开始以为 web 服务器的问题,进去查看DNS ,发现DNS 改为网关的 IP ! ,改回来后还是不行。

(数据库服务启动账户为:network service)


从错误看:目标主体名称不正确,无法生成 SSPI 上下文。


可能原因是:

1. 正在使用集成安全性。

2. 使用 Kerberos 执行安全委派。

3. SqlServer 服务启动账户不是 Local System 。


解决方法:

在同一个域中的任意一台计算机打开命令行。


执行查看要连接的数据库的 spn,执行 :SETSPN -L DBServerName

(注意:不是 SETSPN -L Domain\administrato ,这个是查看域管理员账号的spn)


上面看到如下:

Registered ServicePrincipalNames 用于 CN=DBServerName,CN=Computers,DC=Domain,DC=com:
        MSSQLSvc/DBServerName.Domain.com:1433
        MSSQLSvc/DBServerName.Domain.com
        HOST/DBServerName.Domain.com
        HOST/DBServerName

发现少了一个 spn : MSSQLSvc/DBServerName:1433


现在将该 spn 注册到域中,执行: SETSPN -A MSSQLSvc/DBServerName:1433 DBServerName



再查看spn,发现已经添加,过10几秒后,刷新网页访问正常!~



参考:

如何排查“Cannot generate SSPI context”(无法生成 SSPI 上下文)错误消息

That “Cannot Generate SSPI Context” headache

‘Cannot Generate SSPI Context’ and Service Account Passwords

客户端连接SQL报"Cannot Generate SSPI Context"错误

目标主体名称不正确,无法生成 SSPI 上下文。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是因为您正在尝试删除拥有模式(schema)的数据库主体(database principal)。在 SQL Server 中,模式是一种逻辑容器,可以用来组织和管理数据库对象,如表、视图、存储过程等。每个数据库主体都可以拥有一个或多个模式。如果您尝试删除一个拥有模式的数据库主体,将会收到如上所述的错误消息。 要解决这个问题,您需要按照以下步骤操作: 1. 首先,使用以下语句查找拥有模式的数据库主体的名称和模式的名称: ``` USE [database_name]; SELECT s.name AS schema_name, dp.name AS principal_name FROM sys.schemas s INNER JOIN sys.database_principals dp ON dp.principal_id = s.principal_id WHERE dp.name = 'principal_name'; ``` 请将 "database_name" 替换为您的数据库名称,将 "principal_name" 替换为您要删除的数据库主体名称。 2. 然后,将该数据库主体从其模式中移除。例如,以下语句将名为 "principal_name" 的数据库主体从名为 "schema_name" 的模式中移除: ``` USE [database_name]; ALTER AUTHORIZATION ON SCHEMA::[schema_name] TO dbo; ``` 请将 "database_name" 替换为您的数据库名称,将 "schema_name" 替换为上一步中找到的模式名称。 3. 最后,您可以使用 DROP USER 或 DROP LOGIN 语句删除该数据库主体。例如,以下语句将名为 "principal_name" 的数据库主体删除: ``` USE [database_name]; DROP USER [principal_name]; ``` 请将 "database_name" 替换为您的数据库名称,将 "principal_name" 替换为要删除的数据库主体名称。 请注意,在执行任何删除操作之前,请务必备份您的数据库以防止数据丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值