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~