SharePoint 2013 SqlException (0x80131904):找不到Windows NT 用户或组xxxx\administrator

本文解决了一个在配置SharePoint2013搜索服务应用时出现的问题,即因管理员账号被重命名导致的配置失败。通过查找并更正SQL服务器中登录名的方式,成功解决了此问题。

过程描述:

    在SharePoint 2013里配置创建搜索服务应用程序时报错:

配置 Search Service 应用程序期间遇到错误。
System.Data.SqlClient.SqlException (0x80131904): 找不到 Windows NT 用户或组 'CTTEST\administrator'。请再次检查该名称。

英文:

Errors were encountered during the configuration of the Search Service Application.

System.Data.SqlClient.SqlException (0x80131904): Windows NT user or group 'xxxx\Administrator' not found.

 

原因:

    应该是有人重命名了xxxx\Administrator账号。

解决办法:

Open SQL Server management studio -> Security -> Logins。

我的环境是有个xxxA\administrator,右击该账号,重命名,将其改为

xxxx\administrator。然后重启数据库服务即可。

 

在使用 Web API 的 Swagger UI 时,如果遇到 SQL Server 登录失败错误,并提示 `Microsoft.Data.SqlClient.SqlException` 用户 `NT AUTHORITY\ANONYMOUS LOGON` 登录失败,这通常表示应用程序尝试连接数据库时使用的身份验证方式为 Windows 身份验证(集成安全性),但当前运行环境未正确配置以支持该身份验证机制。 ### 原因分析 - **匿名登录问题**:`NT AUTHORITY\ANONYMOUS LOGON` 表示 SQL Server 收到了一个未经身份验证的请求。常见于 IIS Kestrel 托管环境下未启用 Windows 身份验证。 - **连接字符串配置问题**:若连接字符串中包含 `Integrated Security=true` `Trusted_Connection=true`,则要求运行应用的账户对 SQL Server 具有访问权限。 - **托管环境限制**:例如,在 Linux 系统容器环境中运行 ASP.NET Core 应用时,无法使用 Windows 身份验证。 ### 解决方法 1. **检查并启用 Windows 身份验证** - 如果部署在 IIS 上,确保在 IIS 管理器中启用了“Windows 身份验证”并禁用了“匿名身份验证”。 - 在 ASP.NET Core 的 `Startup.cs` `Program.cs` 中配置主机以启用 Windows 身份验证: ```csharp var builder = WebApplication.CreateBuilder(new WebApplicationOptions { Args = args, ContentRootPath = Directory.GetCurrentDirectory(), EnvironmentName = Environments.Development }); builder.WebHost.UseKestrel().UseUrls("http://*:5000"); builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme) .AddNegotiate(); builder.Services.AddAuthorization(options => { options.FallbackPolicy = options.DefaultPolicy; }); ``` 2. **修改连接字符串使用 SQL Server 身份验证** - 将连接字符串中的 `Integrated Security=true` 替换为明确的用户名和密码: ```json "ConnectionStrings": { "DefaultConnection": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;" } ``` - 确保数据库用户具有相应权限,并且 SQL Server 配置允许远程连接与混合模式身份验证。 3. **检查 Kerberos 身份验证配置** - 若部署在域环境中,需确保 Kerberos 正确配置,避免 NTLM 回退导致的身份验证失败。 - 可通过设置 SPN(服务主体名称)来解决委托问题,尤其是在使用反向代理负载均衡器时。 4. **检查运行账户权限** - 若使用的是本地开发环境,确保 Visual Studio 是以当前用户权限运行。 - 若部署在服务器上,确认应用程序池服务运行账户具有访问 SQL Server 的权限。 5. **日志与调试** - 启用详细的日志记录,查看完整的异常堆栈信息,有助于定位具体问题来源。 - 使用 SQL Server Profiler 捕获登录事件,观察是否收到登录请求及失败原因。 6. **跨域与代理配置** - 如果通过反向代理(如 Nginx、IIS ARR)访问 Swagger UI,确保代理配置正确传递身份验证头。 - 检查 CORS 设置,确保 Swagger 请求不会因跨域策略被阻止。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值