1. sql Server是什么意思
SQL Server是Microsoft 公司推出的关系型数据库管理系统。
SQL Server具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。
Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。
Microsoft SQL Server数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
(1)sqlservercmdexec扩展阅读:
在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。
SQL Server 2000 是Microsoft 公司推出的SQL Server数据库管理系统,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。
具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。
2. 关于SQLSERVER的存储过程的几个题目..求解~!~~
1、
CREATE FUNCTION return_num
(@Class_Num varchar(20) )
RETURNS int
AS
BEGIN
RETURN ( select cout(*) from classmates where classnum=@Class_Num )
END
3、
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'Database 数据库名字' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'Database 数据库名字'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
END
DECLARE @jobId BINARY(16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'备份数据库名字',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'每天上午数据库备份',
@category_name=N'Database 数据库名字',
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Daily Backup',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'declare @strDate nvarchar(max);
set @strDate = N''D:\DataBaseAutoBackup\数据库名字_'' + Convert(nvarchar(8),getdate(),112) + N''.bak''
BACKUP DATABASE [数据库名字] TO DISK = @strDate WITH NOFORMAT, NOINIT, NAME = N''数据库名字_Dev-完整 数据库 备份'', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO',
@database_name=N'master',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschele @job_id=@jobId, @name=N'Daily Backup',
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_relative_interval=0,
@freq_recurrence_factor=0,
@active_start_date=20120510,
@active_end_date=99991231,
@active_start_time=50000,
@active_end_time=235959,
@schele_uid=N'f90cfdc3-cb5d-4e19-9e93-99b8921d36c0'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO
3. 怎样才能保护好 SQL Server 数据库
数据库的安全性一直是非常重要的,相信对大家会有帮助的。
1.
首先,你需要安装最新的服务包
为了提高服务器安全性,最有效的一个方法就是升级到SQL
Server
2000
Service
Pack
3a
(SP3a)。另外,您还应该安装所有已发布的安全更新。
2.
使用Microsoft基线安全性分析器(MBSA)来评估服务器的安全性
MBSA
是一个扫描多种Microsoft产品的不安全配置的工具,包括SQL
Server和Microsoft
SQL
Server
2000
Desktop
Engine(MSDE
2000)。它可以在本地运行,也可以通过网络运行。该工具针对下面问题对SQL
Server安装进行检测:
(1)
过多的sysadmin固定服务器角色成员。
(2)
授予sysadmin以外的其他角色创建CmdExec作业的权利。
(3)
空的或简单的密码。
(4)
脆弱的身份验证模式。
(5)
授予管理员组过多的权利。
(6)
SQL
Server数据目录中不正确的访问控制表(ACL)。
(7)
安装文件中使用纯文本的sa密码。
(8)
授予guest帐户过多的权利。
(9)
在同时是域控制器的系统中运行SQL
Server。
(10)
所有人(Everyone)组的不正确配置,提供对特定注册表键的访问。
(11)
SQL
Server
服务帐户的不正确配置。
(12)
没有安装必要的服务包和安全更新。
Microsoft
提供
MBSA
的免费下载。
3.
使用Windows身份验证模式
在任何可能的时候,您都应该对指向SQL
Server的连接要求Windows身份验证模式。它通过限制对Microsoft
Windows用户和域用户帐户的连接,保护SQL
Server免受大部分Internet工具的侵害,而且,您的服务器也将从Windows安全增强机制中获益,例如更强的身份验证协议以及强制的密码复杂性和过期时间。另外,凭证委派(在多台服务器间桥接凭证的能力)也只能在Windows身份验证模式中使用。在客户端,Windows身份验证模式不再需要存储密码。存储密码是使用标准SQL
Server登录的应用程序的主要漏洞之一。要在SQL
Server的Enterprise
Manager安装Windows身份验证模式,请按下列步骤操作:
(1)展开服务器组。
(2)右键点击服务器,然后点击属性。
(3)在安全性选项卡的身份验证中,点击仅限Windows。
4.
隔离您的服务器,并定期备份
物理和逻辑上的隔离组成了SQL
Server安全性的基础。驻留数据库的机器应该处于一个从物理形式上受到保护的地方,最好是一个上锁的机房,配备有洪水检测以及火灾检测及消防系统。数据库应该安装在企业内部网的安全区域中,不要直接连接到Internet。定期备份所有数据,并将副本保存在安全的站点外地点。
5.
分配一个强健的sa密码
sa帐户应该总拥有一个强健的密码,即使在配置为要求
Windows
身份验证的服务器上也该如此。这将保证在以后服务器被重新配置为混合模式身份验证时,不会出现空白或脆弱的sa。
要分配sa密码,请按下列步骤操作:
(1)
展开服务器组,然后展开服务器。
(2)
展开安全性,然后点击登录。
(3)
在细节窗格中,右键点击SA,然后点击属性。
(4)
在密码方框中,输入新的密码。
4. sql server 中的EXEC有什么用!
exec函数族的作用为根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件。这里的可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。
exec函数族的函数执行成功后不会返回,因为调用进程的实体,包括代码段,数据段和堆栈等都已经被新的内容取代,只留下进程ID等一些表面上的信息仍保持原样,看上去还是旧的躯壳,却已经注入了新的灵魂。只有调用失败了,它们才会返回一个-1,从原程序的调用点接着往下执行。
(4)sqlservercmdexec扩展阅读
使用exec函数族主要有两种情况:
1、当进程认为自己不能再为系统和用户做出任何贡献时,就可以调用exec函数族中的任意一个函数让自己重生。
2、如果一个进程想执行另一个程序,那么它就可以调用fork函数新建一个进程,然后调用exec函数族中的任意一个函数,这样看起来就像通过执行应用程序而产生了一个新进程(这种情况非常普遍)。
5. 如何创建 SQL Server 代理作业以存档数据库邮件和事件日志
1、在SQLServerManagementStudio中,打开要在其中创建作业的SQLServer的实例,或者打开包含要向其中添加步骤的作业的实例。2、SQLServer代理,然后执行下列操作之一:若要创建新的作业,请右键单击“作业”,再单击“新建”。若要使用现有作业,请“作业”,右键单击该作业,再单击“属性”。 3、在“常规”页上,如果要创建新的作业,请提供作业名称,选择所有者和作业类别,还可以选择提供作业说明。4、若要使作业可以进行安排,请选择“已启用”。5、单击“步骤”,再单击“新建”。6、提供一个步骤名称,然后基于将要运行该作业的 dtexec 实用工具(dtexec.exe)的版本在“类型”列表中选择一种作业步骤类型:若要使用由系统自动调用的 dtexec 实用工具版本来运行作业,请选择“SQLServerIntegrationServices包”。在运行SQLServer和SQLServer代理的32位计算机上,此设置将调用32位版本的 dtexec 实用工具。在安装和运行64位版本的SQLServer和SQLServer代理的64位计算机上,此设置将调用64位版本的 dtexec 实用工具。在只安装和运行32位版本的SQLServer和SQLServer代理的64位计算机上,此设置将调用32位版本的 dtexec 实用工具。若要在非默认版本的 dtexec 实用工具中运行作业,请选择“操作系统(CmdExec)”,然后输入用于调用 dtexec 实用工具特定版本的命令行。若要创建随后可以将其粘贴到作业步骤中的命令行,可以使用执行包实用工具(dtexecui.exe)。例如,假设您希望在32位模式下从64位SQLServer代理作业中运行包。对于“类型”,选择“操作系统(CmdExec)”,然后输入用于调用32位版本的dtexec 实用工具的命令行。 若要从SQLServer代理作业中运行SQLServer2000DTS包,请选择“操作系统(CmdExec)”,然后输入一个命令行或使用一个批处理文件以调用 dtsrun 实用工具(dtsrun.exe)。若要创建随后可以将其粘贴到作业步骤中的命令行,可以使用执行包实用工具(dtexecui.exe)。7、在“运行身份”列表中,选择该作业将要使用的代理帐户和凭据。有关详细信息,请参阅以下主题:如何为SQLServer代理设置服务启动帐户(SQLServer配置管理器) 如何创建SQLServer代理的代理帐户(Transact-SQL) 如何修改SQLServer代理的代理帐户(Transact-SQL)8、在“常规”选项卡上,选择包源。如果源是SQLServer或SSIS包存储区,请提供服务器名,选择要使用的身份验证模式,然后提供包的名称,或单击省略号按钮“(…)”,接着选择该包。如果源是文件系统,请提供包的路径和名称,或单击省略号按钮“(…)”并找到该包。重要提示:对于受密码保护的SSIS包,请单击“配置”选项卡,在“包密码”对话框中输入密码。否则,执行受密码保护包的SQLServer代理作业将失败。9、若要指定命令行选项,请执行下列操作:单击“命令文件”选项卡,指定包含包所使用的选项的文件。单击“命令行”选项卡,编辑或还原命令行选项。单击“配置”选项卡,添加配置文件,还可以选择将已配置的变量导出到文件中。单击“数据源”选项卡,选中连接管理器复选框,然后更新连接字符串。 单击“执行选项”选项卡,指定包运行时的行为,例如,如果出现警告包是否失败。单击“日志记录”选项卡,添加日志提供程序。选择“日志提供程序”列表中的一个日志提供程序,然后键入连接字符串。单击“设置值”选项卡,将属性和变量映射为值。注意:属性路径使用此语法:\Package\.。根据包结构的不同,容器可能包括其他容器,在这种情况下,嵌套的容器由反斜杠(\)分隔。例如,Package\MyForeachLoop\MySequence\MyExecuteSQLTask.Description。单击“验证”选项卡,指定是否只有签名的包才可以运行,并指定运行的包的版本。10、单击“确定”。
6. 如何查看sqlserver的启动/停止日志
您好,很高兴为您解答。
缺省情况下,在Program FilesMicrosoft SQL ServerMSSQLLog目录下。最近的错误日志名称是ERRORLOG,如果停止并重启SQL Server,旧的日志将被压缩和新建一个文件。此外,也可以通过DBCC ERRORLOG 命令或者sp_cycle_errorlog 系统存储过程回收错误日志。
[@more@]
以下是一些没有写在文档中但是众所周知的系统存储过程,这些存储过程可以从SQL Server自身读取错误日志。
exec xp_enumerrorlogs 1 will list SQL Engine errorlog file numbers
exec xp_readerrorlog <errorlognumber>, 1 will return the content of the requested Engine errorlog file.
exec xp_enumerrorlogs 2 will list the Agent error log file numbers
exec xp_readerrorlog <errorlognumber>, 2 will return the content of the requested Agent error log file.
举例:
exec xp_enumerrorlogs 2
存档# 日期 日志文件大小(字节)
1 08/06/2012 10:52 11399188
2 07/13/2012 00:58 1048
3 07/13/2012 00:55 1048
4 07/13/2012 00:55 12682508
5 06/16/2012 09:53 12869230
6 05/20/2012 05:38 10492
7 05/20/2012 05:25 11766
8 05/20/2012 05:08 10012278
9 04/29/2012 00:41 15371150
0 08/08/2012 11:30 939606
exec xp_readerrorlog 1, 2
时间 错误级别 内容
2012-07-13 01:07:03.0 3 [393] 正在等待 SQL Server 恢复数据库...
2012-07-13 01:18:29.0 3 [100] Microsoft SQLServerAgent 版本 9.00.1399.06 (内部版本号 x86 unicode 零售): 进程 ID 1996
2012-07-13 01:18:29.0 3 [101] SQL Server SVCTAG-4GCYY2X 版本 9.00.1399 (连接限制: 0)
2012-07-13 01:18:29.0 3 [102] SQL Server ODBC 驱动程序版本 9.00.1399
2012-07-13 01:18:29.0 3 [103] 驱动程序使用的 NetLib 是 DBNETLIB.DLL;本地主机服务器是
2012-07-13 01:18:29.0 3 [310] 检测到 8 个处理器和 4096 MB RAM
2012-07-13 01:18:29.0 3 [339] 本地计算机是 SVCTAG-4GCYY2X,运行的是 Windows NT 5.2 (3790) Service Pack 2
2012-07-13 01:18:29.0 3 [431] 正在填充子系统缓存...
2012-07-13 01:18:36.0 3 [432] 子系统缓存中有 11 个子系统
2012-07-13 01:18:36.0 3 [124] 已成功加载子系统“TSQL”(最大并发数: 160)
2012-07-13 01:18:37.0 3 [124] 已成功加载子系统“ActiveScripting”(最大并发数: 80)
2012-07-13 01:18:37.0 3 [124] 已成功加载子系统“CmdExec”(最大并发数: 80)
2012-07-13 01:18:38.0 3 [124] 已成功加载子系统“Snapshot”(最大并发数: 800)
2012-07-13 01:18:38.0 3 [124] 已成功加载子系统“LogReader”(最大并发数: 200)
~ O(∩_∩)O~