Sqlserver安全篇之_Sqlcmd命令使用windows域账号认证sqlserver遇到问题如何处理的案例

sqlcmd
https://learn.microsoft.com/zh-cn/sql/tools/sqlcmd/sqlcmd-connect-database-engine?view=sql-server-ver16

sqlcmd -S指定的数据库连接字符串必须有对应的有效的SPN信息,否则会报错SSPI Provider: Server not found in Kerberos database.

正常连接
1、tcp:hostname,port

/opt/mssql-tools18/bin/sqlcmd -S tcp:dbdev1,1433 -N true -C -Q "select top 1 name from sys.databases"
/opt/mssql-tools18/bin/sqlcmd -S tcp:stagingdb1,63061 -N true -C -Q "select top 1 name from sys.databases"

2、hostname

/opt/mssql-tools18/bin/sqlcmd -S dbdev1 -N true -C -Q "select top 1 name from sys.databases"

3、hostname\instance

/opt/mssql-tools18/bin/sqlcmd -S "stagingdb1\db62lm" -N true -C -Q "select top 1 name from sys.databases"

4、hostname,port

/opt/mssql-tools18/bin/sqlcmd -S dbdev1,1433 -N true -C -Q "select top 1 name from sys.databases"
/opt/mssql-tools18/bin/sqlcmd -S stagingdb1,63061 -N true -C -Q "select top 1 name from sys.databases"

无法正常连接,这是因为SPN里面的信息只有服务器dbdev1或stagingdb1的名称,而没有ip的名称
1、tcp:ip,port

/opt/mssql-tools18/bin/sqlcmd -S tcp:172.22.137.251,1433 -N true -C -Q "select top 1 name from sys.databases"
/opt/mssql-tools18/bin/sqlcmd -S tcp:10.0.2.195,63061 -N true -C -Q "select top 1 name from sys.databases"
报错
SSPI Provider: Server not found in Kerberos database.
Cannot generate SSPI context.

2、ip

/opt/mssql-tools18/bin/sqlcmd -S 172.22.137.251 -N true -C -Q "select top 1 name from sys.databases"
报错
SSPI Provider: Server not found in Kerberos database.
Cannot generate SSPI context.

3、ip\instance

/opt/mssql-tools18/bin/sqlcmd -S "10.0.2.195\db62lm" -N true -C -Q "select top 1 name from sys.databases"
报错
SSPI Provider: Server not found in Kerberos database.
Cannot generate SSPI context.

4、ip,port

/opt/mssql-tools18/bin/sqlcmd -S 172.22.137.251,1433 -N true -C -Q "select top 1 name from sys.databases"
/opt/mssql-tools18/bin/sqlcmd -S 10.0.2.195,63061 -N true -C -Q "select top 1 name from sys.databases"
报错
SSPI Provider: Server not found in Kerberos database.
Cannot generate SSPI context.

sqlcmd遇到过的问题,windows域账号的kerberos ticket正常的情况下,windows域账号认证sqlserver报错

sqlcmd报错

webprocess@paystaget1:~$ /opt/mssql-tools18/bin/sqlcmd -S 172.22.137.251,1433 -N true -C -Q "select top 1 name from sys.databases"
Sqlcmd:Error: Microsoft ODBc priver 18 for SQLLServor: SSPI Provider: No Credentials were supplied,or the Credentials were unavailable or inaccessible. No Kerberos credentials available(defaul cache: File:/tmp/krb5cc_946009658)
Sqlcmd: Error: Microsoft ODBc Driver 18 for SQLServer:Can not generate SSPI context

分析
1、该域账号的kerberos ticket

root@paystaget1:~# klist /opt/apache-tomcat-9.0.62/conf/krb5cc_genticket
Ticket cache: FILE:/opt/apache-tomcat-9.0.62/conf/krb5cc_genticket
Default principal: webprocess@DAI.NETDAI.COMValid starting     Expires            Service principal
04/17/25 16:00:03  04/18/25 02:00:03  krbtgt/DAI.NETDAI.COM@DAI.NETDAI.COMrenew until 04/18/25 16:00:03

2、域账号不会直接使用kerberos ticket文件,而是根据该域账号对应的uid,默认使用/tmp/krb5cc_uid

root@paystaget1:~# chown webprocess.webprocess /tmp/krb5cc_946009658
报错chown:invalid user: `webprocess.webprocess`

3、自此发现这种域账号webprocess,只有uid是webprocess但是没有gid是webprocess,所以chown时无法使用webprocess.webprocess这样的方式写死域用户和域用户组

root@paystaget1:~# id webprocess
uid=946009658(webprocess) gid=946000513(domain users) groups=946000513(domain users),946040890(sophosuser),946063848(alkgo user),946071842(sso quiver)

解决方法

root@paystaget1:~# cp /opt/apache-tomcat-9.0.62/conf/krb5cc_genticket /tmp/krb5cc_946009658
root@paystaget1:~# chown webprocess /tmp/krb5cc_946009658
root@paystaget1:~# klist /tmp/krb5cc_946009658
webprocess@paystaget1:/root$ /opt/mssql-tools18/bin/sqlcmd -S tcp:dbdev1,1433 -N true -C -Q "select top 1 name from sys.databases"
name
--------------------------------------------------------------------------------------------------------------------------------
master(1 rows affected)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/80029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑硬盘常见的几种接口类型

一、传统接口(机械硬盘为主) 1. SATA 接口(Serial ATA) 特点: 最主流的机械硬盘(HDD)接口,广泛用于台式机和笔记本电脑。传输速度较慢,理论最大带宽为 6 Gbps&#xff…

【前端HTML生成二维码——MQ】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前端HTML生成二维码——MQ 前言本文将介绍前端HTML如何更具用户输入的内容生成对应的二维码,附页面代码、实现函数、js脚本。一、自定义显示页面1、效果图二、使用步骤1、引入库2、实现函数3、页面及函数代…

研发效率破局之道阅读总结(3)工程优化

研发效率破局之道阅读总结(3)工程优化 Author: Once Day Date: 2025年4月22日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: 程序的艺术_Once-Day…

C# MP3 伴奏

使用建议: 参数调节指南: 低频人声残留:降低CenterFrequency(800-1500Hz) 高频人声残留:提高CenterFrequency(2500-3500Hz) 消除力度不足:提高EliminationStrength(0.9-1.0) 伴奏失真:降低EliminationSt…

大模型面经 | 春招、秋招算法面试常考八股文附答案(四)

大家好,我是皮先生!! 今天给大家分享一些关于大模型面试常见的面试题,希望对大家的面试有所帮助。 往期回顾: 大模型面经 | 春招、秋招算法面试常考八股文附答案(RAG专题一) 大模型面经 | 春招、秋招算法面试常考八股文附答案(RAG专题二) 大模型面经 | 春招、秋招算法…

Springboot 集成 RBAC 模型实战指南

RBAC 模型核心原理 详情可参考之前的笔记:https://blog.csdn.net/qq_35201802/article/details/146036789?spm1011.2415.3001.5331 RBAC 定义与优势 RBAC(Role-Based Access Control,基于角色的访问控制)** 是一种通过角色关联…

如何收集用户白屏/长时间无响应/接口超时问题

想象一下这样的场景:一位用户在午休时间打开某电商应用,准备购买一件心仪已久的商品。然而,页面加载了数秒后依然是一片空白,或者点击“加入购物车”按钮后没有任何反馈,甚至在结算时接口超时导致订单失败。用户的耐心被迅速消耗殆尽,关闭应用,转而选择了竞争对手的产品…

用户需求报告、系统需求规格说明书、软件需求规格说明的对比分析

用户需求报告、系统需求规格说明书(SyRS)和软件需求规格说明书(SRS)是需求工程中的关键文档,分别对应不同层次和视角的需求描述。以下是它们的核心区别对比: ​​1. 用户需求报告(User Requirem…

iostat指令介绍

文章目录 1. 功能介绍2. 语法介绍3. 应用场景4. 示例分析 1. 功能介绍 iostat (input/output statistics),是 Linux/Unix 系统中用于监控 CPU 使用率和 磁盘 I/O 性能的核心工具,可实时展示设备负载、吞吐量、队列状态等关键指标。 可以使用 man iostat查…

神经网络 “疑难杂症” 破解指南:梯度消失与爆炸全攻略(六)

引言 在神经网络的发展历程中,梯度消失和梯度爆炸如同两座难以翻越的大山,阻碍着深层神经网络发挥其强大的潜力。尤其是在处理复杂任务时,这两个问题可能导致模型训练陷入困境,无法达到预期的效果。本文将深入探讨梯度消失和梯度…

“多模态SCA+DevSecOps+SBOM风险情报预警 “数字供应链安全最佳管理体系!悬镜安全如何用AI守护万亿数字中国?

夜深人静,程序员青丝盯着屏幕上自动生成的代码模块陷入沉思。在AI大模型的加持下,仅用一周团队就完成了原本需要半年的开发进度,但代码审查时却发现了不少高危漏洞。“生成效率提升了,但安全漏洞像定时炸弹一样藏在代码里”&#…

Node.js简介(nvm使用)

Node.js是一个基于Chrome V8 JavaScript引擎构建的开源、跨平台JavaScript运行环境。它允许开发者在服务器端运行JavaScript代码,从而实现前后端统一的开发语言。Node.js具有事件驱动、非阻塞I/O模型,使其非常适合于构建高性能的网络应用。 Node.js不是…

PHP日志会对服务器产生哪些影响?

PHP日志是服务器运维中非常重要的一部分,但处理不当会对服务器产生明显的负面影响。下面我们从多个维度深入分析:PHP日志的作用、类型、对服务器的正面与负面影响,以及优化建议,让你全面掌握这一问题。 一、PHP日志是什么? PHP…

Spring AI Alibaba-02-多轮对话记忆、持久化消息记录

Spring AI Alibaba-02-多轮对话记忆、持久化消息记录 Lison <dreamlison163.com>, v1.0.0, 2025.04.19 文章目录 Spring AI Alibaba-02-多轮对话记忆、持久化消息记录多轮对话对话持久-Redis 本次主要聚焦于多轮对话功能的实现&#xff0c;后续会逐步增加更多实用内容&…

分别配置Github,Gitee的SSH链接

文章目录 前言一、为第二个账号生成新的密钥对二、 配置 SSH config 文件1.引入库使用 Host 别名进行 clone/push/pull注意扩展 前言 之前已经在电脑配置过Github一个仓库ssh链接&#xff0c;今天想配一个Gitee仓库的ssh链接。运行 ssh-keygen -t rsa提示已经存在&#xff0c…

Python 获取淘宝买家订单详情(buyer_order_detail)接口的详细指南

在电商运营中&#xff0c;订单详情数据是商家进行数据分析、客户服务和营销策略制定的重要依据。淘宝提供了 buyer_order_detail 接口&#xff0c;允许开发者获取买家的订单详情数据。本文将详细介绍如何使用 Python 调用该接口获取订单详情&#xff0c;并解析返回的数据。 一、…

C语言实战:用Pygame打造高难度水果消消乐游戏

水果消消乐 - 困难模式 以下是一个基于Python和Pygame的水果消消乐游戏实现&#xff0c;包含困难模式的特点&#xff1a; import pygame import random import sys from pygame.locals import *# 初始化 pygame.init() pygame.mixer.init()# 游戏常量 FPS 60 WINDOW_WIDTH …

Doris-BrokerLoad任务监控

BrokeLoad监控 #!/bin/bash target_label$1 user$2 password$3looptrue echo "开始循环了----------------------" while ${loop} dolabel$(mysql -h FE_IP -P9030 -urealtime -ppassword -D offline -e "show load where label${target_label}")if [ -z &…

企业微信私域运营,基于http协议实现SCRM+AI完整解决方案

1、方案介绍 基于企业微信原生功能已实现全场景的能力覆盖&#xff0c;并提供标准化可直接调用的API接口&#xff0c;可以帮助企业轻松实现上层应用的开发及落地&#xff0c;方案采用模拟通信技术可实现PC&#xff0c;手机&#xff0c;ipad三端的同时在线&#xff0c;单服务器…

Oracle Linux8 安装 MySQL 8.4.3,搭建一主一从

文章目录 安装依赖获取安装包解压准备相关目录设置配置文件启动数据库连接数据库socket 文件优化同样方法准备 3307 数据库实例设置配置文件启动 3307 实例数据库连接并查看 3307 数据库实例基于 bin log 搭建主从模式 安装依赖 yum install -y numactl libaio ncurses-compat…