【正文】
05/28/2022 07:12:03 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROC [dbo].[kh] 22 @K_id VARCHAR(20), @K_name VARCHAR(10), @K_tel VARCHAR(10), @C_ci VARCHAR(10), @T_seat VARCHAR(10) AS IF @C_ci IS NULL BEGIN ROLLBACK。 RETURN。 END IF @T_seat IS NULL BEGIN ROLLBACK。 RETURN。 END IF @K_id IS NULL BEGIN ROLLBACK。 RETURN。 END IF @K_name IS NULL BEGIN ROLLBACK。 RETURN。 END IF @K_tel IS NULL BEGIN ROLLBACK。 RETURN。 END ELSE BEGIN UPDATE Che_ticket SET T_sale=39。已售39。 WHERE C_ci=@C_ci AND T_seat=@T_seat UPDATE Checi SET C_seatNumber=C_seatNumber1 WHERE C_ci=@C_ci INSERT INTO Kehu(K_id,K_name,K_tel,T_seat,C_ci) VALUES(@K_id,@K_name,@K_tel,@T_seat,@C_ci) 23 DELETE FROM Yewuyuan WHERE C_ci=@C_ci AND T_seat=@T_seat PRINT 39。買票成功!39。 END 存儲過程 2:業(yè)務(wù)員退票USE [火車票 ]GO/****** Object: StoredProcedure [dbo].[ywy] Script Date: 05/28/2022 07:33:15 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROC [dbo].[ywy] @y_id varchar(10), @y_name varchar(10), @C_ci varchar(10), @T_seat varchar(10), @Y_tel varchar(10)as if @y_name is null begin rollback。 return。 end if @c_ci is null begin rollback。24 return。 end if @y_id is null begin rollback。 return。 end if @T_seat is null begin rollback。 return。 endelse begin update Checi set T_sale=39。待售39。 where C_ci=@C_ci and T_seat=@T_seat update Checi set C_seatNumber=C_seatNumber+1 where C_ci=@C_ci and C_seatNumber1000 delete from Kehu where C_ci=@C_ci and T_seat=@T_seat insert into Yewuyuan(Y_id,Y_name,Y_tel,T_seat,C_ci) values(@Y_id,@Y_name,@Y_tel,@T_seat,@C_ci) print39。退票成功39。 end25 存儲過程:查票信息USE [火車票 ]GO/****** Object: StoredProcedure [dbo].[piao] Script Date: 05/27/2022 08:47:29 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROC [dbo].[piao] @C_goTime datetime, @C_chufaadd VARCHAR(10), @C_fanhuiadd VARCHAR(10), @C_type VARCHAR(10) , @T_type VARCHAR(10) AS IF @C_goTime IS NULL BEGIN ROLLBACK。 RETURN。 END IF @C_chufaadd IS NULL BEGIN ROLLBACK。 RETURN。 END IF @C_fanhuiadd IS NULL BEGIN ROLLBACK。 RETURN。 END IF @C_type IS NULL BEGIN ROLLBACK。 RETURN。 END IF @T_type IS NULL BEGIN 26 ROLLBACK。 RETURN。 END ELSE BEGIN 查找規(guī)定時(shí)間,車次類別,座位類別,處于待售,出發(fā)地,目的地,的票. SELECT * FROM Che_ticket AS O INNER JOIN Checi AS S ON = WHERE (@C_goTime BETWEEN AND ) AND =@C_type AND =@T_type AND =@C_chufaadd AND =@C_fanhuiadd AND =39。待售 39。 END 圖 存儲過程查票的實(shí)現(xiàn)七、安全性設(shè)計(jì) 防止用戶直接操作數(shù)據(jù)庫的方法(1)用戶標(biāo)識和鑒定 用戶標(biāo)識和鑒別是系統(tǒng)提供的最外層安全保護(hù)措施。其方法是由系統(tǒng)提供一定的方式讓用戶標(biāo)識自己的名字或身份。每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核對,通過鑒定后才提供機(jī)器使用權(quán)。 (2)存取控制 數(shù)據(jù)庫安全性所關(guān)心的主要是 DBMS 的存取控制機(jī)制。數(shù)據(jù)庫安全最重要的一點(diǎn)就是確保只授權(quán)給由資格的用戶訪問數(shù)據(jù)庫的權(quán)限,同時(shí)令所有未授權(quán)的人員無法接近數(shù)據(jù),這主要通過數(shù)據(jù)庫系統(tǒng)的存取控制機(jī)實(shí)現(xiàn)。 (3)數(shù)據(jù)加密 數(shù)據(jù)加密是防止數(shù)據(jù)庫中數(shù)據(jù)在存儲和傳輸中關(guān)系的有效字段。加密的基本思想27是根據(jù)一定的算法講原始數(shù)據(jù)變換為不可直接識別的格式,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容。 用戶帳號密碼的加密方法為用戶帳號密碼加密,需要用程序?qū)崿F(xiàn),對用戶的帳號密碼實(shí)行加密算法,并在后臺實(shí)現(xiàn)轉(zhuǎn)換。 角色與權(quán)限確定每個(gè)角色對數(shù)據(jù)庫表的操作權(quán)限,如創(chuàng)建、檢索、更新、刪除等。每個(gè)角色擁有剛好能夠完成任務(wù)的權(quán)限,不多也不少。在應(yīng)用時(shí)再為用戶分配角色,則每個(gè)用戶的權(quán)限等于他所兼角色的權(quán)限之和。角色 可以訪問的表與列 操作權(quán)限管理員 可訪問所有表 完全控制權(quán)限Admin 可訪問所有表 部分控制權(quán)限八、數(shù)據(jù)庫管理與維護(hù)說明數(shù)據(jù)庫維護(hù)計(jì)劃設(shè)定完成之后,如果 SQL Server 代理是啟動(dòng)的,那么在 管理--SQL Server 代理--作業(yè)下面會自動(dòng)生成若干自動(dòng)維護(hù)的工作條目,并且每個(gè)條目都有相應(yīng)的計(jì)劃表,這個(gè)才是正常的。系統(tǒng)每天凌晨自動(dòng)更新系統(tǒng),刪除未銷卡記錄。數(shù)據(jù)庫維護(hù)計(jì)劃非常強(qiáng)大,里面有各式各樣對數(shù)據(jù)庫的維護(hù)/備份操作,每樣都可以設(shè)定不同的 Schedule,當(dāng)然,每設(shè)定一項(xiàng),在 JOB 里面就會自動(dòng)多出來一條。SQL Server Agent 服務(wù)的正常運(yùn)作是這一切的基礎(chǔ)。系統(tǒng)每天凌晨更新后,自動(dòng)備份數(shù)據(jù)庫