首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL SA密码更改

SQL SA密码更改
EN

Stack Overflow用户
提问于 2016-02-12 14:16:28
回答 1查看 573关注 0票数 0

因此,我有一个批处理文件,试图使用混合身份验证更改sql安装的SA密码:

代码语言:javascript
运行
复制
:WINT
CLS
SET /P COMPUTERNAME=Enter the name of your Server: 
SET /P INSTANCE=Enter the name of your SQL instance: 
SET /P NEWPASS=Enter your new password: 
sqlcmd -S "%COMPUTERNAME%\%INSTANCE%" -Q "[master].[sys].[xp_instance_regwrite]  @rootkey = N'HKEY_LOCAL_MACHINE'  ,@key = N'Software\Microsoft\MSSQLServer\MSSQLServer'  ,@value_name = N'loginMode'  ,@type = N'REG_DWORD'  ,@value = 2;"
sqlcmd -S "%COMPUTERNAME%\%INSTANCE%" -Q "alter login sa with password='%NEWPASS%'"
sqlcmd -S "%COMPUTERNAME%\%INSTANCE%" -Q "alter login sa enable"
net stop MSSQL$%INSTANCE% && net start MSSQL$%INSTANCE% 
sqlcmd -b
PAUSE
IF %ERRORLEVEL%==1 GOTO END2
ELSE IF GOTO END1

我的问题是,这个批处理文件似乎是特定于2008年R2的,因为这是我能够让它在其中正常工作的唯一环境。,所以我的问题是:是否有人知道如何创建一个批处理文件,从而启用混合身份验证,然后为任何版本的windows (server/enterprise/home/pro)更改SA密码?

我需要这样做,而用户不知道他们的SA密码是什么(假设他们至少在本地管理组中),因为这个批处理的目的是使用户能够在忘记SA密码的情况下更改他们的SA密码。

谢谢你提前提供帮助!

EN

回答 1

Stack Overflow用户

发布于 2016-02-12 16:23:46

我会阻止你现在做的事。首先,最终用户不应该拥有SA权限.如果他们确实需要SA权限,那么拒绝他们访问SA密码有什么用呢?

也就是说,您应该做的是使用windows身份验证并通过SSMS管理权限。如果这太复杂,您可以创建具有用户所需权限的SQL用户,然后让应用程序在登录到SQL (即连接字符串中)时使用该帐户。解决这个问题的方法不多,但我无法想象最终用户需要SA权限,不能拥有SA密码,并且需要定期从批处理文件中更改SA密码。这到底是怎么回事?!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35364780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档