sql2000数据库下载查询、修改、删除指定字符。

页面导航:
→ 正文内容 sa帐号的修改与删除方法
SQL2000中的默认sa帐号的修改与删除方法
MSSQL默认的sa很少有人改动,但是经常有人用工具扫描sa账户,并且爆破密码
现在用MSSQL的地方太多了,有很多做技术的个人电脑上也安装SQL专业版,因为它用的多,但用的人都知道,SQL有个超级用户sa,此用户默认情况下,它指派给固定服务器角色 sysadmin,并不能进行更改。一般懂点安全问题的技术人员都会把这个密码修改掉,但修改再复杂的密码都不是绝对安全的,一些暴力破解软件,菜鸟都会用。那怎么办呢,最好的办法就是删除或改名,下面提供方法.为了加强安全把默认的sa用户更改掉,安全性会有大幅提升。 Alter LOGIN sa DISABLE Alter LOGIN sa WITH NAME = [新用户名]
修改SA用户名:
一:在企业管理器中右击:(local)(windows NT),选属性,选择“服务器设置”,在服务器行为中的“允许对系统目录直接进行修改”前面的方框打钩。再点确定。二:再打开查询分析器,登陆进去(呵呵,随便你用什么帐号进去,不过可一定要在master数据库中有db_owner的权限)输入 代码如下:update sysxlogins set name='你要改成的名字' where sid=0x01update sysxlogins set sid=0xEF054F89CD3 where name='你要改成的名字',OK,执行成功,转道企业管理器中刷新安全性中的登陆,看看,sa是不是变成你自己想修改的用户了&
删除SA用户:
修改方法需要利用的存储过程sp_configure,sp_configure显示或更改当前服务器的全局配置设置。语法:打开查询分析器,输入sp_configure [ [ @configname = ] 'name' ][ , [ @configvalue = ] 'value' ]
实例: 代码如下:sp_configure 'allow updates', 1goRECONFIGURE WITH OVERRIDEgo好拉,这样我们就可以更新系统表拉,接下来和前面的做法一样拉 update sysxlogins set name='你要改成的名字' where sid=0x01,然后再删除"你改名后的那个名字"不过要注意在 sp_configure 上没有参数(或只有第一个参数)的执行许可权限默认授予所有用户。有两个参数的 sp_configure(用于更改配置选项)的执行许可权限默认授予 sysadmin 和 serveradmin 固定服务器角色。RECONFIGURE 权限默认授予 sysadmin 固定服务器角色和 serveradmin 固定服务器角色,并且不能传输。
您可能感兴趣的文章:
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910bat批处理 SQL2000数据库附加、分离、查询、备份、还原、删除小程序 - 做最不无聊的IT人 - ITeye技术网站
博客分类:
@Echo off::本程序在XP环境下对SQL2000
数据库测试通过
::SQL2005的见
Title SQL2000数据库 附加、分离、查询、备份、还原、删除 小程序
::▇AAA代表在SQL中看到的[要分离、附加的数据库名]
::▇BBB代表[要附加的数据库的位置]
CCC代表[要附加的数据库文件名]
DDD代表[要附加的数据库日志文件名]
::▇EEE代表[指定的数据库实例用户名]
FFF代表[指定的数据库实例用户的密码] (这里指定的实例是"127.0.0.1"或"Local"或"."即指本机SQL自带的实例)
::▇GGG代表[要备份的数据库名]
HHH代表[数据库备份的路径]
III代表[备份后的名字]
::▇JJJ代表[用于还原的数据库备份文件所在的路径+文件名]
KKK代表[还原后的数据库文件所存放的路径]
LLL代表[还原数据库后在SQL中所显示的名称]
::▇MMM代表[要删除的数据库名]
::#**********************************************************************#
::★1、【分离】请编辑AAA
set AAA=ForestFireControl_StandingBook
::----------------------------------------
::★2、【附加】请编辑AAA、BBB、CCC、DDD
set BBB=C:\
set CCC=ForestFireControl_StandingBook.mdf
set DDD=ForestFireControl_StandingBook_log.ldf
::----------------------------------------
::★设定数据库的登入【账号和密码】请编辑EEE、FFF
set EEE=sa
set FFF=sa
::----------------------------------------
::★4、【备份】请编辑GGG、HHH、III
set GGG=ForestFireControl_StandingBook
set HHH=C:\
set III=备份的数据库2.bak
::----------------------------------------
::★5、【还原】请编辑JJJ、KKK、LLL
set JJJ=C:\备份的数据库2.bak
set KKK=C:\
set LLL=ForestFireControl_StandingBook
::----------------------------------------
::★6、【删除】请编辑MMM
set MMM=ForestFireControl_StandingBook
::#**********************************************************************#
REM 选择菜单
Echo ★★★注意:本文件最好不要放在路径名中含有空格的位置上运行(如桌面等位置)
Echo #**********************************************************************#
选项如下(可用记事本打开对相应参数重新编辑)
Echo #**********************************************************************#
[1]分离%AAA%数据库
[2]附加%BBB%下的%CCC%数据库文件
[3]查看数据库中已存在的非系统表
[4]备份数据库%GGG%到%HHH%%III%
[5]还原"%JJJ%"数据库备份文件为%LLL%.mdf且存放到%KKK%下
[6]彻底删除数据库%MMM%
退出请按其他键
Echo #**********************************************************************#
Echo 选择后请按回车进行确认
set /P CHS=请选择: [1],[2],[3],[4],[6]?
if /I "%CHS%"=="1" goto 1111
if /I "%CHS%"=="2" goto 2222
if /I "%CHS%"=="3" goto 3333
if /I "%CHS%"=="4" goto 4444
if /I "%CHS%"=="5" goto 5555
if /I "%CHS%"=="6" goto 6666
::============================================================================
set XXX=C:\121.sql
Echo 正在清理与此数据库的连接,请等待……
::将下面的这三句语句写到.sql文件里面,再通过下面的第四条语句调用执行这个.sql文件的内容,第五条语句是删除这个.sql文件,第六条语句开始分离
&"%XXX%" Echo use
&&"%XXX%" Echo declare hcforeach cursor global for select 'kill
'+rtrim(spid) from sysprocesses where dbid=db_id(N'%AAA%')
&&"%XXX%" Echo exec
sp_msforeach_worker
Osql -U"%EEE%" -P"%FFF%" -i %XXX%
OSQL -E -Q "SP_DETACH_DB %AAA%"
::其他例子: osql -U"sa" -P"sa" -S"127.0.0.1" -Q "sp_detach_db '库名'"
Echo 分离SQL中名为%AAA%的数据库成功
goto dosmenu
::============================================================================
OSQL -U"%EEE%" -P"%FFF%" -S"127.0.0.1" -Q "sp_attach_db '%AAA%','%BBB%\%CCC%','%BBB%\%DDD%'"
Echo 附加%BBB%下的数据库文件%CCC%到SQL中成功
::★★★ OSQL -U"sa" -P"sa" -S"127.0.0.1" -Q "sp_attach_db '库名','路径\数据文件名','路径\日志文件名'"
goto dosmenu
::============================================================================
OSQL -E -Q "SELECT NAME,FILENAME FROM MASTER..SYSDATABASES WHERE
name&&'master' and name&&'tempdb' and name&&'model'
and name&&'msdb' "
::★★★上面语句中FROM后面的MASTER..SYSDATABASES表示系统自带的MASTER数据库中的SYSDATABASES表
goto dosmenu
::============================================================================
del %HHH%%III%
::加上述的del %HHH%%III%语句的作用是为了防止在路径%III%下已经存在同名的数据库备份文件,而导致文件叠加到一块,这也算是SQL2000的一个Bug
Echo 正在备份数据库,在出现成功的提示之前请您耐心等待……
OSQL -U"%EEE%" -P"%FFF%" -S"127.0.0.1" -d"%GGG%"
-Q "Backup DataBase %GGG% to disk = '%HHH%%III%'"
::★★★OSQL -U"sa" -P"sa" -S"127.0.0.1" -d"CircleImage" -Q "Backup DataBase CircleImage to disk = 'c:\111.db'"
Echo 恭喜!恭喜!已成功将SQL中的数据库"%GGG%"备份成%HHH%下文件名为"%III%"的文件
goto dosmenu
::============================================================================
Echo 数据库文件正在还原,在出现还原成功的提示前请您耐心等待……
set XXX=C:\123.sql
Echo DECLARE @bakFile nvarchar(1024);
&&"%XXX%" Echo SET @bakFile = N'%JJJ%';
&&"%XXX%" Echo.
&&"%XXX%" Echo DECLARE @restorePath nvarchar(1024);
&&"%XXX%" Echo SET @restorePath = N'%KKK%';
&&"%XXX%" Echo.
&&"%XXX%" Echo DECLARE @dbname nvarchar(128);
&&"%XXX%" Echo SET @dbname = N'%LLL%';
&&"%XXX%" Echo.
&&"%XXX%" Echo DECLARE @filename nvarchar(128);
&&"%XXX%" Echo SET @filename = @
&&"%XXX%" Echo.
&&"%XXX%" Echo CREATE TABLE #LogicalFileBak(LogicalName nvarchar(128),
&&"%XXX%" Echo
PhysicalName nvarchar(260),
&&"%XXX%" Echo
Type char(1),
&&"%XXX%" Echo
FileGroupName nvarchar(128),
&&"%XXX%" Echo
[Size] numeric(20,0),
&&"%XXX%" Echo
[MaxSize] numeric(20,0) );
&&"%XXX%" Echo.
&&"%XXX%" Echo
INSERT #LogicalFileBak EXEC('RESTORE FILELISTONLY FROM DISK = ''' + @bakFile + '''');
&&"%XXX%" Echo.
&&"%XXX%" Echo
DECLARE cur CURSOR FOR SELECT LogicalName,Type,FileGroupName FROM #LogicalFileB
&&"%XXX%" Echo
DECLARE @LogicalName nvarchar(128),@Type char(1),@FileGroupName nvarchar(128);
&&"%XXX%" Echo.
&&"%XXX%" Echo
DECLARE @cmd nvarchar(4000);
&&"%XXX%" Echo
SET @cmd = 'RESTORE DATABASE [' + @dbname + '] FROM DISK = ''' + @bakFile + '''';
&&"%XXX%" Echo
SET @cmd = @cmd + ' WITH REPLACE'
&&"%XXX%" Echo.
&&"%XXX%" Echo
&&"%XXX%" Echo
FETCH NEXT FROM cur INTO @LogicalName,@Type,@FileGroupN
&&"%XXX%" Echo
WHILE @@FETCH_STATUS = 0
&&"%XXX%" Echo
&&"%XXX%" Echo
SET @cmd = @cmd + ',MOVE ''' + @LogicalName + ''' TO ''' + @restorePath
&&"%XXX%" Echo
+ @filename + CASE WHEN @Type = 'D' AND @FileGroupName = 'PRIMARY'
&&"%XXX%" Echo
THEN '.mdf'
&&"%XXX%" Echo
WHEN @Type = 'D' AND @FileGroupName ^&^& 'PRIMARY'
&&"%XXX%" Echo
THEN '.ndf'
&&"%XXX%" Echo
ELSE '_log.ldf'
&&"%XXX%" Echo
END + ''''
&&"%XXX%" Echo
FETCH NEXT FROM cur INTO @LogicalName,@Type,@FileGroupN
&&"%XXX%" Echo
&&"%XXX%" Echo
&&"%XXX%" Echo
DEALLOCATE
&&"%XXX%" Echo.
&&"%XXX%" Echo
EXEC(@cmd);
&&"%XXX%" Echo.
&&"%XXX%" Echo
DROP TABLE #LogicalFileB
Osql -U"%EEE%" -P"%FFF%" -i %XXX%
Echo 恭喜!已成功将"%JJJ%"还原成%LLL%,且还原后的文件存放在%KKK%下
goto dosmenu
::============================================================================
Echo 真的要删除吗?删除后将不可恢复
set /P QR=确定删除请按y,放弃删除请按其他键,请选择?
if /I "%QR%"=="y" (
OSQL -U"%EEE%" -P"%FFF%" -S"127.0.0.1" -Q "Drop DataBase %MMM%"
::其他例子:OSQL -U"sa" -P"sa" -S"127.0.0.1" -Q "Drop DataBase 库名"
Echo 删除SQL中名为%AAA%的数据库及源文件成功
goto dosmenu
::============================================================================
::**************************************************************************************************
::**************************************************************************************************
::**************************************************************************************************
::分离数据库的命令:Sp_detach_db 数据库名
::  连接数据库的命令:Sp_attach_db或者sp_attach_single_file_db
::  sp_attach_db [@dbname =] 'dbname', [@filename1 =] 'filename_n' [,...16]
::  sp_attach_single_file_db [@dbname =] 'dbname', [@physname =] 'physical_name'
::使用此方法可以正确附加和分离SQL Sever7.0和SQL Server 2000的数据库文件,要点是备份的时候一定要将mdf和ldf两个文件都备份下来,mdf文件是数据库数据文件,ldf是日志文件。
::OSQL -? 显示帮助(具体如下所示)
::用法: osql [-U 登录 ID] [-P 密码]
::[-S 服务器] [-H 主机名] [-E 可信连接]
::[-d 使用数据库名称] [-l 登录超时值] [-t 查询超时值]
::[-h 标题] [-s 列分隔符] [-w 列宽]
::[-a 数据包大小] [-e 回显输入] [-I 允许带引号的标识符]
::[-L 列出服务器] [-c 命令结束] [-D ODBC DSN 名称]
::[-q "命令行查询"] [-Q "命令行查询" 并退出]
::[-n 删除编号方式] [-m 错误级别]
::[-r 发送到 stderr 的消息] [-V 严重级别]
::[-i 输入文件] [-o 输出文件]
::[-p 打印统计信息] [-b 出错时中止批处理]
::★★★可通过下面的语句查询已有备份库的逻辑文件名,以用于 还原数据库语句操作 中的操作
::OSQL -U"sa" -P"sa" -S"127.0.0.1"
-Q "restore filelistonly from disk ='C:\备份的数据库1'"
::OSQL -U"sa" -P"sa" -S"127.0.0.1"
-Q "restore filelistonly from disk ='C:\备份的数据库1'" &&C:\1234.txt
::=============================================================================================
::★★★★★ 还原数据库语句操作
::其中的 数据库的逻辑文件名 和 数据库日志的逻辑文件名 是通过上述的语句来查询的
::格式说明:
::osql -E -d CircleImage -Q "restore database 备份后SQL中看到的数据库名 from
disk='用于还原的备份文件的路径+文件名' with move '数据库的逻辑文件名' TO '备份后的路径+实际文件名', MOVE
'数据库日志的逻辑文件名' TO '备份后的路径+实际文件名'"
::OSQL -U"sa" -P"sa" -S"127.0.0.1" -Q "restore database CircleImage from
disk='C:\CircleImage备份' with move 'CircleImage_Data' to
'c:\CircleImage.mdf',move ::'CircleImage_Log' to
'c:\CircleImage_log.ldf'"
::上述这么长的语句中切不可出现回车等换行符,且参数的大小写是不可随意更改的
::=============================================================================================
::★★ 更改数据库备份文件逻辑名的方法:
::alter database 数据库名 modify file (name=逻辑名,newname=新逻辑名)
::事实上,上面的语句是更改了sysfiles和sysfiles1系统表中的name字段。
浏览: 327274 次
来自: 安徽
jp.ne.so_net.ga2.no_ji.jcom.JCo ...
你好,请问你都做了哪些修改呢?是在客户端还是服务端?
翻译有误。
l ?:意思是操作符左边的符号( ...
请教一个问题,是不是HTTP请求里面没有包含上传文件在客户端的 ...
“认清” 我还以为google怎么你了

我要回帖

更多关于 sql2000数据库备份 的文章

 

随机推荐