SQL Server 2000修复Sa账户密码丢失:解决方案与步骤

需积分: 50 5 下载量 190 浏览量 更新于2024-09-13 1 收藏 264KB DOCX 举报
在SQL Server 2000环境中,管理sa账户的密码是管理员任务的一部分。然而,有时用户可能会遇到修改sa密码时遇到错误2812:未能找到存储过程'sp_password'的问题。这通常是因为该存储过程已被删除或在新的版本中不再存在。 SQL Server 2000中的默认方法是通过企业管理器(企业管理器)来修改sa密码,步骤如下: 1. 打开企业管理器,定位到服务器组 > 服务器 > 安全性 > 登录,右键点击“Sa”,选择“属性”。 2. 在“SQLServer登录属性”对话框中,切换到“SQLServer身份验证”选项卡,输入新的密码。 3. 为了确认新密码,再次输入密码并点击“确定”。 当使用这种方法失败时,可以尝试通过“查询分析器”绕过这个限制。由于'SP_PASSWORD'在SQL Server 2000以后版本中已被替换,可以通过创建自定义存储过程来实现密码更改。以下是一个在`master`数据库中手动创建`sp_password`存储过程的示例: ```sql SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS OFF GO CREATE PROCEDURE sp_password @oldsysname = NULL, -- 当前密码 @newsysname, -- 新密码 @loginame = sysname NULL -- 修改密码的用户(默认为sa) AS BEGIN -- 设置运行时选项和声明变量 SET NOCOUNT ON DECLARE @self INT SELECT @self = CASE WHEN @loginame IS NULL THEN 1 ELSE 2 END -- 解析登录名 IF @loginame IS NULL SELECT @loginame = suser_sname() -- 检查权限(SecurityAdmin角色) IF NOT (IS_SRVROLEMEMBER('securityadmin') = 1) AND (@self <> 1) BEGIN DBCC AUDIT EVENT (107, @self, 0, @loginame, NULL, NULL, NULL) RAISERROR(15210, -1, -1) RETURN 1 END ELSE BEGIN DBCC AUDIT EVENT (10 ``` 这段代码首先设置了存储过程的语法模式,然后创建了一个名为`sp_password`的存储过程,该过程接受旧密码、新密码和可选的用户登录名作为参数。请注意,这个方法不是官方推荐的方法,因为它绕过了系统内置的安全机制。在实际生产环境中,应避免使用此方法,除非有充分的理由。 如果你遇到问题,建议检查服务器的更新状态,并确保你的环境与官方文档兼容,因为SQL Server 2000已不再受到微软的支持,可能存在安全漏洞和性能问题。对于较新的版本,可以直接在SQL Server Management Studio中使用更安全的内置工具来管理sa账户和密码。
2016-11-22 上传
*修正 +增加 -去除 ^调整 1.2.9 *修正查看我的表中编辑、删除用户视图、存储过程、用户函数时列表为空时的报错; +在查看我的表中增加导出表结构、索引、视图、存储过程、用户函数为SQL语句的功能。 1.2.8 ^允许修改密码处使用空密码,以方便一些要求空密码的软件连接; *修正win10下查询分析器缺少动态库和语法高亮未激活的问题; +增加了大容量数据的存取支持,增加bcp命令,允许在SQL中使用bcp命令进行大数据的导入导出; +增加BULK INSERT、OPENROWSET这些数据批处理SQL命令的支持。 示例:--OPENROWSET SELECT CustomerID, CompanyName FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb'; 'admin';'',Customers); 这种通过OPENROWSET,把access,excell,cvs,txt都变成一个表来取。 示例:--BULK INSERT fmt由bcp生成 BULK INSERT xxxTable FROM 'c:\xxx.csv' WITH (FORMATFILE = 'fieldMap.fmt', BATCHSIZE=10000) 1.2.7 +配置中添加Debug条件项,其值非0,则在启动时不会锁定面板,便于程序员使用; +计划任务中备份部分增加对备份文件个数的定义,允许保留5~99个备份,旧的备份自动删除; +托盘区菜单添加“查找”项,用来快速打开程序所在目录,方便开启多个副本的用户查找对应目录; ^数据库页右键菜单启动事件探查器时,自动加载标准模板,方便使用。 1.2.6 *还原数据库时,修正输入库名时点取消后没有中止还原等错误; +查询分析器添加语法高亮支持; *修正关闭服务时,有机率卡顿的现象,进行了优化处理; +在操作系统关闭时,自动停止服务,防止数据丢失。 1.2.5 +数据库页增加查看我的表功能菜单项,可管理视图、存储过程及自定义函数和查看表结构等; ^部分菜单及按钮增加图标,增加美观度; +内存管理页增加AWE开关,以解决部分电脑内存不足造成运行缓慢的问题,AWE功能也占内存。 1.2.4 ^选择开机启动时,会自动删除与软件关联的注册表项,防止变更实例名造成注册表残留,对于已登记开机启动,又直接删除了软件的,请手工删除注册表Run项中的残留; *修正部分win7系统下无法正常解锁的问题(系统无法访问127.0.0.1造成); *修正部分文字描述内容错误(漏字或多打字等)。 1.2.3 +数据库页面,集成外部工具“查询分析器”与“事件探查器”,系SQL自带程序,方便使用; -删除内置“查询分析”功能页; ^数据库页面,密码修改,允许任意字符,不再限制只能为0~9a~z了,但不允许为空; ^数据库内核升级至8.00.2305,开启AWE,支持大内存(超2G)及修复漏洞; +增加SQL Tips页,记录一些常用的SQL语句,方便查阅; ^标题栏解锁界面和密码修改页面进行调整,增加多语言支持。 1.2.2 *附加数据库时,修正输入库名时点取消后没有中止附加等错误; +增加面板锁,点击左上角的金锁,输入SA用户密码,输入正确则打开面板,否则隐藏面板,不限制开、关服务; +数据库页面,右键菜单增加打开文件目录,方便用户操作; +增加内存管理页,控制SQL Server内存占用,与企业管理器相同。 1.2.1 ^未开启服务时,关闭窗口会退出程序,开启服务时,关窗窗口则是隐藏; *附加数据库时,修正目标目录与源目录相同时无法附加的问题。 1.2.0 +增加托盘区菜单项“重启”,方便重启SQL服务; ^附加数据库文件时,将移动改为复制,原文件不会被删除; +计划任务在备份数据库后,自动清除旧备份,只保留最后5个备份(按文件,不按时间); *修正计划任务无法正确执行的问题,由皮肤引起的。 1.1.9 +增加win8的支持,增加皮肤以美化界面; +增加查询分析器,方便使用SQL操作数据库; +增加简体、繁体语言切换,方便港台及深圳用户使用。 1.1.8 ^计划任务中执行SQL语句变更为执行SQL脚本文件,支持GO分隔,方便执行复杂任务。 1.1.7 +配置文件中增加AppTitle字符串项,如果有输入内容,则在启动时会以该项的值为窗口标题;繁体用户请将配置文件保存为Unicode格式; *修正没有清除默认实