sa密码修改失败解决办法
- 格式:doc
- 大小:228.50 KB
- 文档页数:3
Sybase数据库sa密码丢失后解决⽅法
1、在Sybase⽬录的install⼦⽬录的启动server⽂件
RUN_server(这⾥的server表⽰你的服务器名称,如这⾥我的是RUN_FENGLB)名,编辑该⽂件,
在其中的“\data\master.dat -sFENGLB”后加⼊参数 -psa,保存该⽂件。
2、如果服务器已经启动,先停⽌之。
3、启动⼀个DOS窗⼝,转到上⾯的install⽬录,将DOS窗⼝的属性的屏幕缓冲区⼤⼩设置为9999,将执⾏第1步批处理⽂件以启动server,在启动之后,将DOS窗⼝中的内容全部复制到记本事中,查找字符串“New SSO password for sa:”,后⾯的就是sa的新⼝令,需要记录⼀下。
4、切换到SQL Advangtage以sa账号登录,⼝令为刚刚得到的密码。
5、进⼊server以后,⽤命令sp_password修改sa⼝令:sp_password '原密码','新密码','⽤户名'
新密码的位数⼀定要⼤于6位,否则不能够更改成功。
6、回到第1步,去掉增加的选项-psa,保存退出。
MSSQL的朋友应该都遇到过这个问题,sa登录失败是经常有的事情,今天为⼤家整理⼀下SA登录失败的常见的原因,使⼤家以后可以很快的调试好程序,mssql2005中sa登陆失败情况总结如下:
1.打开 sql server configuration manager 看服务是否启动
2.看⼀下通讯协议中的TCP/IP是否开启。
注意VIA协议是指Virtual Interface Adapter
3.在使⽤多个instance时,要注意观察Shared Memory协议是否开启。
Shared Memory是⽤来保障在同⼀机器中,连接到多个实例
4.查看Aliases中连接情况是否符合你设定的值(尤其是端⼝号,及其协议)
5.查看SQL SERVER Surface Area Configuration中的Remote Connections是否开启tcp/ip协议
6.查看是否开启了混合登录模式
7.查看sa的属性中login的状态是否为enable。
sql 2005 用户 sa 登录失败,该用户与可信SQL Server连接无关联错误18452 解决方案用户'sa' 登录失败。
该用户与可信SQL Server 连接无关联问题一、忘记了登录Microsoft SQL Server 2005 的sa的登录密码解决方法:先用windows身份验证的方式登录进去,然后在…安全性‟-…登录‟-右键单击…sa‟-…属性‟,修改密码(sa的密码不能太简单,最好要有数字,字母,下划线字符组成,且长度最好大于10个字符);点击确定就可以了。
问题二、已成功与服务器建立连接,但是在登录过程中发生错取。
(provider:共享内存提供程序,error:0-管道的另一端上无任何进程。
)(Microsoft SQL Server,错误:233)解决方法:打开…程序‟-…所有程序‟-…Microsoft SQL Server 2005 ‟-…配置工具‟-…SQL Server 配置管理器‟,在弹出的窗体中,找到…SQL Server 2005 网络配置‟,把…MSSQLSERVER的协议‟下的“Named Pipes”和“TCP/IP”启动,然后重新启动Microsoft SQL Server 2005就可以了。
问题三、无法打开用户默认数据库。
登录失败。
用户…sa‟登录失败。
(Microsoft SQL Server, 错误:4064)解决方法:先用windows身份验证的方式登录进去,然后在…安全性‟-…登录‟-右键单击…sa‟-…属性‟,将默认数据库设置成master,点击确定就可以了。
问题四、sql server 2005 错误18452无法连接到服务器服务器:消息18452,级别16,状态1[Microsoft][ODBC SQL Server Driver][SQL Server]用户…sa‟登陆失败。
原因:未与信任SQL Server连接相关联该错误产生的原因是由于SQL Server使用了"仅Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(例如sa )进行连接,解决方法如下设置允许SQL Server身份登录(基本上这个很有用)操作步骤:1。
关于sa登陆密码错误的问题
一、问题描述
在将其他环境的u9数据库还原到u9正在使用的数据库上后,在登陆u9做单据时,报“CLR_AllocSerials"期间出现.net Framework错误.."用户'sa'密码登陆失败。
二、问题分析
由于U9采用了CLR函数原因,其密码是单据配置的。
因此,其他其他环境数据库覆盖时,如果其他环境的sa密码和当前环境的sa密码不一致,则会导致出现上述错误。
三、解决方案
方案一
采用u9的数据恢复工具进行恢复。
这样就不会出现上述问题。
具体界面如下:
图表1
图表2
图表3
方案二
1.手工重新配置一下企业连接串,具体如下:
图表4
图表5
图表 6 2.重新选择一下u9的数据库:
图表7
3.还要记得把sql server服务重启一下。
解决sql账户sa登录失败的方法-回复解决SQL 账户sa 登录失败的方法引言:在SQL Server 中,系统管理员(sa)账户是一个具有最高权限的账户,可以访问和管理数据库服务器中的所有资源。
然而,有时我们可能会遇到sa 登录失败的问题,这可能导致无法正常访问和管理数据库。
本文将逐步介绍如何解决这个问题,以确保sa 账户登录成功。
第一步:确认问题首先,我们需要确认sa 账户登录失败的原因。
在许多情况下,这是由于以下几个常见原因之一所导致的:1. 忘记sa 密码:如果您已经使用sa 账户很长时间,可能会忘记密码。
在这种情况下,您需要重置sa 的密码。
2. sa 账户被禁用:有时,出于安全原因,管理员可能会禁用sa 账户。
您需要确保sa 账户处于启用状态。
3. SQL Server 服务未启动:如果SQL Server 服务未启动,则无法正常登录sa 账户。
您需要确保SQL Server 服务正在运行。
第二步:重置sa 密码如果您忘记了sa 账户的密码,您需要重置它。
以下是一些方法可帮助您重置sa 密码:1. 使用SQL Server Management Studio(SSMS):如果您有访问SQL Server 的管理工具(如SSMS),您可以使用该工具来重置sa 密码。
打开SSMS,选择要连接的服务器,右键单击服务器名称,选择“属性”。
在“常规”选项卡上,找到“安全性”选项,然后选择“SQL Server 和Windows 验证模式”。
点击确定后,回到对象资源管理器窗口,依次选择服务器-> 安全性-> 登录。
右键单击sa 账户,选择“属性”。
在“一般”选项卡上,可以找到“密码”框,输入新密码并确认。
保存更改后,使用新密码进行sa 登录。
2. 使用Transact-SQL(T-SQL):如果您无法访问SSMS,您可以使用T-SQL 来重置sa 密码。
打开SQL Server Management Studio 或任何T-SQL 编辑器,连接到SQL Server 实例。
SQL2000修改sa密码时提示【错误2812:未能找到储存过程’sp_passwoed’】的解决方法1.我们在用SQL2000数据库经常会遇见忘记sa密码,需要修改sa密码,但是有时候修改sa密码时会提示错误2812:未能找到储存过程’sp_passwoed’2.遇到这种情况的解决方法是:打开开始菜单,找到SQL Server的程序组,选择运行程序组中的“查询分析器”,打开.3.打开“查询分析器”后会有一个登录窗口,因为sa密码不能修改,所以在连接使用的地方选择第一项“windows身份验证”。
如果操作系统中有多个SQLServer实例,请在上面SQL Server(S)项中,选择指定示例名。
最后点确定,进入查询分析器.4.在打开的窗口中把以下执行语句内容,全部复制到打开的查询分析新窗体中. create procedure sp_password@old sysname = NULL, -- the old (current) password@new sysname, -- the new password@loginame sysname = NULL -- user to change password onas-- SETUP RUNTIME OPTIONS / DECLARE VARIABLES --set nocount ondeclare @self intselect @self = CASE WHEN @loginame is null THEN 1 ELSE 2 END-- RESOLVE LOGIN NAMEif @loginame is nullselect @loginame = suser_sname()-- CHECK PERMISSIONS (SecurityAdmin per Richard Waymire) --IF (not is_srvrolemember('securityadmin') = 1)AND not @self = 1begindbcc auditevent (107, @self, 0, @loginame, NULL, NULL, NULL)raiserror(15210,-1,-1)return (1)endELSEbegindbcc auditevent (107, @self, 1, @loginame, NULL, NULL, NULL)end-- DISALLOW USER TRANSACTION --set implicit_transactions offIF (@@trancount > 0)beginraiserror(15002,-1,-1,'sp_password')return (1)end-- RESOLVE LOGIN NAME (disallows nt names)if not exists (select * from master.dbo.syslogins whereloginname = @loginame and isntname = 0)beginraiserror(15007,-1,-1,@loginame)return (1)end-- IF non-SYSADMIN ATTEMPTING CHANGE TO SYSADMIN, REQUIRE PASSWORD (218078) --if (@self <> 1 AND is_srvrolemember('sysadmin') = 0 AND exists (SELECT * FROM master.dbo.syslogins WHERE loginname = @loginame and isntname = 0AND sysadmin = 1) )SELECT @self = 1-- CHECK OLD PASSWORD IF NEEDED --if (@self = 1 or @old is not null)if not exists (select * from master.dbo.sysxloginswhere srvid IS NULL andname = @loginame and( (@old is null and password is null) or(pwdcompare(@old, password, (CASE WHEN xstatus&2048 = 2048 THEN 1 ELSE 0 END)) = 1) ) )beginraiserror(15211,-1,-1)return (1)end-- CHANGE THE PASSWORD --update master.dbo.sysxloginsset password = convert(varbinary(256), pwdencrypt(@new)), xdate2 = getdate(), xstatus = xstatus & (~2048)where name = @loginame and srvid IS NULL-- UPDATE PROTECTION TIMESTAMP FOR MASTER DB, TO INDICATE SYSLOGINS CHANGE --exec('use master grant all to null')-- FINALIZATION: RETURN SUCCESS/FAILURE --if @@error <> 0return (1)raiserror(15478,-1,-1)return (0) -- sp_password5.复制完成后,点执行按钮(即下图绿色三角按钮),或者键盘上按F5执行.6.运行后,下方出现提示消息:命令已成功完成。
SQL Server数据库sa用户密码相关问题解决方法SQL Server 是一个关系数据库管理系统。
它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。
在Windows NT 推出后,Microsoft 与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。
Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access 等都采用了SQL语言标准。
虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。
1、请教如何查找sqlserver的sa密码?查询分析器,连接时,身份验证使用"使用windows身份验证"然后,执行:EXEC sp_password NULL, 'NewPassword', 'Sa'企业管理器-->实例名-->安全性-->登录-->双击右边的SA-->更改密码问:丢失SA密码如何找回?答:用户操作失误造成密码丢失。
有两种方法:如果数据不多,可重装TNSDB数据库。
如果只想找回密码,可将安装盘中的tnsdb.txt文件中的“insert intotns_secu_user(c_user_name,c_user_pwd,c_user_code,i_user_t ype,c_expiry_date,c_user_lock,c_user_disa,c_who_crea,c_when_c rea,c_who_modi,c_when_modi)values('sa','c12e01f2a13ff5587e1e9e4aedb8242d','',1,'','1 ','1','','','','')%”行。
我的SQL Server2005 一直正常使用但昨天出现了错误,如图。
经过上网查,网上说的办法试了好多都没有解决这个问题。
在经过多次的摸索后终于搞定了,答案很简单,是sql身份验证“sa”账号登录密码的问题。
但是前提是你必须得保证你的sql server 的sql身份验证可以用,所以在这里我们就先给大家讲述下怎样使sql身份验证可以启用(sql server身份验证可以用的直接跳过这一步)。
首先用windows身份验证登录,windows身份验证不可以登录的请看我前面博客“解决SQL Server 连接服务器错误2”中进行设置,在这里就不再多说了。
然后在服务器上右击属性,进入属性页,在安全性中设置服务器身份验证。
接下来在安全性下的登录名下“sa”上右击属性,进行密码设置
到这里我们的sql身份验证就可以使用了。
sql身份验证可以用后,我们将“sa”的密码重新设置下,你的sql server的sql身份就可以使用了,答案就是这么简单,重新设置密码。
create procedure sp_password@old sysname = NULL, -- the old (current) password@new sysname, -- the new password@loginame sysname = NULL -- user to change password onas-- SETUP RUNTIME OPTIONS / DECLARE VARIABLES --set nocount ondeclare @self intselect @self = CASE WHEN @loginame is null THEN 1 ELSE 2 END-- RESOLVE LOGIN NAMEif @loginame is nullselect @loginame = suser_sname()-- CHECK PERMISSIONS (SecurityAdmin per Richard Waymire) --IF (not is_srvrolemember('securityadmin') = 1)AND not @self = 1begindbcc auditevent (107, @self, 0, @loginame, NULL, NULL, NULL)raiserror(15210,-1,-1)return (1)endELSEbegindbcc auditevent (107, @self, 1, @loginame, NULL, NULL, NULL)end-- DISALLOW USER TRANSACTION --set implicit_transactions offIF (@@trancount > 0)beginraiserror(15002,-1,-1,'sp_password')return (1)end-- RESOLVE LOGIN NAME (disallows nt names)if not exists (select * from master.dbo.syslogins whereloginname = @loginame and isntname = 0)beginraiserror(15007,-1,-1,@loginame)return (1)end-- IF non-SYSADMIN ATTEMPTING CHANGE TO SYSADMIN, REQUIRE PASSWORD (218078) --if (@self <> 1 AND is_srvrolemember('sysadmin') = 0 AND exists(SELECT * FROM master.dbo.syslogins WHERE loginname = @loginame and isntname = 0 AND sysadmin = 1) )SELECT @self = 1-- CHECK OLD PASSWORD IF NEEDED --if (@self = 1 or @old is not null)if not exists (select * from master.dbo.sysxloginswhere srvid IS NULL andname = @loginame and( (@old is null and password is null) or(pwdcompare(@old, password, (CASE WHEN xstatus&2048 = 2048 THEN 1 ELSE 0 END)) = 1) ) )beginraiserror(15211,-1,-1)return (1)end-- CHANGE THE PASSWORD --update master.dbo.sysxloginsset password = convert(varbinary(256), pwdencrypt(@new)), xdate2 = getdate(), xstatus = xstatus & (~2048)where name = @loginame and srvid IS NULL-- UPDATE PROTECTION TIMESTAMP FOR MASTER DB, TO INDICATE SYSLOGINS CHANGE -- exec('use master grant all to null')-- FINALIZATION: RETURN SUCCESS/FAILURE --if @@error <> 0return (1)raiserror(15478,-1,-1)return (0) -- sp_password。
SQL SERVER 2000用户sa 登录失败的解决办法一.控制面板-》服务-》MS SQL SERVER-》登陆--》本地系统帐户--》重新启动MS SQL SERVER 用windows验证登陆查询分析器--》执行sp_password null,sa新密码,'sa'二."无法连接到服务器,用户xxx登陆失败"该错误产生的原因是由于SQL Server使用了"仅W indows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如sa )进行连接.解决方法如下所示:1.在服务器端使用企业管理器,并且选择"使用Windows 身份验证"连接上SQL Server操作步骤:在企业管理器中--右键你的服务器实例(就是那个有绿色图标的)--编辑SQL Server注册属性--选择"使用windows身份验证"--选择"使用SQL Server身份验证"--登录名输入:sa,密码输入sa的密码--确定2.设置允许SQL Server身份登录操作步骤:在企业管理器中--展开"SQL Server组",鼠标右键点击SQL Server服务器的名称--选择"属性"--再选择"安全性"选项卡--在"身份验证"下,选择"SQL Server和Windows ".--确定,并重新启动SQL Server服务.在以上解决方法中,如果在第 1 步中使用"使用Windows 身份验证"连接SQL Server 失败,那就通过修改注册表来解决此问题:1.点击"开始"-"运行",输入regedit,回车进入注册表编辑器2.依次展开注册表项,浏览到以下注册表键:[HKEY_LOCA L_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]3.在屏幕右方找到名称"LoginMode",双击编辑双字节值4.将原值从1改为2,点击"确定"5.关闭注册表编辑器6.重新启动SQL Server服务.此时,用户可以成功地使用sa在企业管理器中新建SQL Server注册,但是仍然无法使用Windows身份验证模式来连接SQL Server.这是因为在SQL Server 中有两个缺省的登录帐户:BUILTIN\Administrators<机器名>\Administrator 被删除.要恢复这两个帐户,可以使用以下的方法:1.打开企业管理器,展开服务器组,然后展开服务器2.展开"安全性",右击"登录",然后单击"新建登录"3.在"名称"框中,输入BUILTIN\Administrators4.在"服务器角色"选项卡中,选择"System Administrators"5.点击"确定"退出6.使用同样方法添加<机器名>\Administrator 登录.说明:以下注册表键:HKEY_LOCA L_MACHINE\SOFTWA RE\Microsoft\MSSQLServer\MSSQLServer\LoginMode的值决定了SQL Server将采取何种身份验证模式.1.表示使用"Windows 身份验证"模式2.表示使用混合模式(Windows 身份验证和SQL Server 身份验证).先用Window方式登陆进去,选择数据库实例,右键选择属性——安全性:把服务器身份验证选项从Window身份验证模式”改为“SQLServer和Window身份验证模式”。
SQL2005 用户'sa'登录失败(错误18456)图文解决方法
SQL2008无法连接到.\SQLEXPRESS,用户'sa'登录失败(错误18456)图文解决方法
出现问题:
标题: 连接到服务器
------------------------------
无法连接到 .\SQLEXPRESS。
------------------------------
其他信息:
用户 'sa' 登录失败。
(Microsoft SQL Server,错误: 18456)
解决方法:
1、打开数据库——用Windows身份登录数据库
02、登录名——双击sa(打开属性)
03、常规——设置密码——确定
04、状态——登录:启用——确定
05、右击服务器名——属性
06、安全性——选中 SQL Server 和 Windows 身份验证模式——确定
07、右击服务器名——重新启动——关闭数据库连接,退出程序——用sa登录到数据库——解决
补充说明:
如果以上方法无效,那么请到开始菜单——Microsoft SQL Server 2008——配置工具——Microsoft SQL Server 2008
经过以上修改之后就可以修改成功了!。
SQL Sever2008中sa不能登录的解决方法(sa登录失败,错误18456)一.一种情况是在安装过程中选择“混合模式”,但是实际应用中sa的密码忘记了或是sa密码丢失时:a、在SQL Server Management Studio 用Window连接的情况下改实列的“属性”中“安全性”选中WINDOWS及SQL验证;b、再到电脑-管理-服务里,重起SQL服务器后,c、回到SQL Server Management Studio,Window连接的情况下新建查询,执行下面代码ALTER LOGIN sa WITH PASSWORD='新密码d、在SQL Server Management Studio 用Window连接的情况下改实列的“属性”中“安全性”打勾WINDOWS及SQL验证,(原来只打勾WINDOWS);e、在SQL服务器上点击安全性,即找到根节点->安全性->登录名->sa. 右键sa打开属性对话框。
1、在“常规”页中设置sa用户的密码,注意密码不能太简单,如密码是sa 肯定是通过不了的。
(低版本的SQL 习惯sa ,. 等密码不行的)2、在“用户映射”页中,确认一下SA用户有没有db_owner角色身份。
必须要有,要不然sa登录后什么高级功能也做不了了。
3、在“状态”页中,把“是否允许连接到数据库引擎”设置为“授予”,把“登录”设置为“启用”。
4、点击确定保存配置。
二.一种情况是在安装过程中选择“Windows 身份验证模式”,则sa 登录将被禁用:在SQL Server Management Studio 用Window连接的情况下将身份验证模式更改为“SQL Server 和Windows 身份验证模式”,则sa 登录仍处于禁用状态。
若要启用sa 登录帐户,请使用ALTER LOGIN 语句(如上a)。
解决sql账户sa登录失败的方法摘要:1.问题概述2.可能的原因3.解决方案4.预防措施5.总结正文:在过去的日子里,我们曾经遇到过SQL账户sa登录失败的问题。
在这种情况下,我们需要找出失败的原因并采取相应的解决措施。
本文将详细介绍解决SQL账户sa登录失败的方法,帮助你轻松应对此类问题。
一、问题概述SQL账户sa登录失败可能是由多种原因导致的。
在实际操作中,我们发现以下几种常见情况:1.密码错误:输入的密码不正确或密码过期。
2.账户锁定:账户因错误登录次数过多而被锁定。
3.防火墙限制:SQL Server实例所在的计算机防火墙设置不正确,阻止了sa账户的登录。
4.网络问题:SQL Server实例与客户端计算机之间的网络连接不稳定或带宽不足。
5.SQL Server配置问题:SQL Server实例的配置不正确,导致sa账户无法正常登录。
二、可能的原因1.检查密码:首先确认输入的密码是否正确,以及是否过期。
若密码错误,请尝试重置密码或联系数据库管理员。
2.解锁账户:若账户被锁定,可以通过以下步骤进行解锁:a.打开SQL Server Management Studio,连接到数据库实例。
b.在“对象资源管理器”中,展开“安全性”目录。
c.右键点击“登录”,选择“解锁账户”。
d.输入sa账户的新密码,并确认。
e.点击“确定”按钮,完成账户解锁。
3.检查防火墙设置:确保SQL Server实例所在的计算机防火墙允许sa账户登录。
若需要,可以将以下端口添加到防火墙允许列表中:- 1433(默认端口,用于SQL Server客户端连接)- 1614(用于SQL Server代理服务器的端口)4.检查网络连接:确保SQL Server实例与客户端计算机之间的网络连接稳定,带宽充足。
5.检查SQL Server配置:通过以下步骤检查SQL Server实例的配置:a.打开SQL Server Management Studio,连接到数据库实例。
sqlserver2008忘记sa密码的解决⽅法相信很多⼈都跟⼩编⼀样不管是什么账号,如果很久不⽤就会忘记登录密码,像数据库SQL Server2008也⼀样有⽤户名和登录密码,下⾯⼩编就分享⼀下如何找回或修改SQL Server2008密码前提是你有服务器⽹络管理员管理权限1、⾸先以超级管理员administrator账户登录到电脑,然后打开据库SQL Server2008⾄登录界⾯,然后选择windows⾝份验证(注意:必须是超级管理员账户哦,否则是⽆法使⽤windows⾝份验证登录的)2、登录进去后找到安全性菜单,然后在登录名中找到你要修改的⽤户,这⾥以"sa" 账号为例3、双击sa账户弹出修改密码的窗⼝,然后选择“常规”在密码输⼊框中重新输⼊密码即可4、如果发现还是⽆法登录的情况,请回主界⾯在左边的列表中选择第⼀项,然后单击⿏标右键,选择属性5、在弹出的对话框中找到安全性,然后在服务器⾝份验证中选择“SQL Server和windows⾝份验证”,登录审核选择“仅限失败的登录”。
如果管理员帐号误删了可以参考下⾯的⽅法今天有朋友问到如题⽬所⽰的问题,⼀时之间还真不好回答,做了好⼏个实验,终于搞定,⽅法如下,供⼤家参考:问题描述:朋友的SQLSERVER2008有可能在安装时没有添加当前账号作为管理员,或者后来将domain\administrator从SQLSERVER的“登录”中删除掉了,反正他是⽆法⽤管理员账号进⼊SQLSERVER⾥⾯了,⽽sa账号的密码也不幸被他给忘了。
操作关键点:想办法添加新有的权限的账号,⽤到sqlservr -m和sqlcmd操作步骤:1.停⽌数据库服务2.以单⽤户模式启动,不知道的同学⾃⼰搜⼀下sqlservr.exe,看这个⽂件存在哪个⽬录⾥,然后以命令⾏调⽤,加上-m参数,即sqlservr -m3.登录sqlserver,个⼈喜欢⽤sqlcmd,执⾏命令为:sqlcmd回车4.这时候就进来了,按如下命令操作C:\Users\Administrator>sqlcmd1> create login anyang with password='admin@123'2> go1> sp_addsrvrolemember 'anyang','sysadmin'2> go此时,就会在系统中添加了⼀个名为anyang的数据库管理员账号5.结束sqlcmd和sqlservr -m的窗⼝,重新启动SQLSERVER服务,⽤anyang登录6.按下图操作,在“登录”中添加windows的管理员账号,并且授予sysadmin权限。
create procedure sp_password
@old sysname = NULL, -- the old (current) password
@new sysname, -- the new password
@loginame sysname = NULL -- user to change password on as
-- SETUP RUNTIME OPTIONS / DECLARE VARIABLES --
set nocount on
declare @self int
select @self = CASE WHEN @loginame is null THEN 1 ELSE 2 END
-- RESOLVE LOGIN NAME
if @loginame is null
select @loginame = suser_sname()
-- CHECK PERMISSIONS (SecurityAdmin per Richard Waymire) --
IF (not is_srvrolemember('securityadmin') = 1)
AND not @self = 1
begin
dbcc auditevent (107, @self, 0, @loginame, NULL, NULL, NULL)
raiserror(15210,-1,-1)
return (1)
end
ELSE
begin
dbcc auditevent (107, @self, 1, @loginame, NULL, NULL, NULL)
end
-- DISALLOW USER TRANSACTION --
set implicit_transactions off
IF (@@trancount > 0)
begin
raiserror(15002,-1,-1,'sp_password')
return (1)
end
-- RESOLVE LOGIN NAME (disallows nt names)
if not exists (select * from master.dbo.syslogins where
loginname = @loginame and isntname = 0)
begin
raiserror(15007,-1,-1,@loginame)
return (1)
end
-- IF non-SYSADMIN ATTEMPTING CHANGE TO SYSADMIN, REQUIRE PASSWORD (218078) --
if (@self <> 1 AND is_srvrolemember('sysadmin') = 0 AND exists
(SELECT * FROM master.dbo.syslogins WHERE loginname = @loginame and isntname = 0
AND sysadmin = 1) )
SELECT @self = 1
-- CHECK OLD PASSWORD IF NEEDED --
if (@self = 1 or @old is not null)
if not exists (select * from master.dbo.sysxlogins
where srvid IS NULL and
name = @loginame and
( (@old is null and password is null) or
(pwdcompare(@old, password, (CASE WHEN xstatus&2048 = 2048 THEN 1 ELSE 0 END)) = 1) ) )
begin
raiserror(15211,-1,-1)
return (1)
end
-- CHANGE THE PASSWORD --
update master.dbo.sysxlogins
set password = convert(varbinary(256), pwdencrypt(@new)), xdate2 = getdate(), xstatus = xstatus & (~2048)
where name = @loginame and srvid IS NULL
-- UPDATE PROTECTION TIMESTAMP FOR MASTER DB, TO INDICATE SYSLOGINS CHANGE --
exec('use master grant all to null')
-- FINALIZATION: RETURN SUCCESS/FAILURE --
if @@error <> 0
return (1)
raiserror(15478,-1,-1)
return (0) -- sp_password。