㈠ asp員工請假系統:我做到請假申請頁面和請假信息保存進資料庫,怎麼編寫審核頁面啊
表裡面增加一個 「審核狀態」欄位, 默認是0 ---未審核
審核通過設置成 1,
未通過設置成 2,
update 請假表 set 審核狀態=1 where 請假條編號=1
㈡ 在備份資料庫之前可以保留腳本和資料庫審計嗎那樣自己編寫的代碼是不是就可以都保存下來了啊 ,下次在
嗯。。你要保留自己操作過的腳本大可執行後將代碼保存在本地啊
除非是你要監控資料庫中的語句操作,這樣才要用到審計
另外審計是可以獨立保存為文件的,不需要保存到資料庫中,所以還原不還原資料庫跟審計沒關系
㈢ 學會如何應用資料庫——資料庫規范化技巧 (1)
簡介在設計資料庫時,最重要的步驟是要確保數據正確分布到資料庫的表中。使用正確的數據結構,可以極大地簡化應用程序的其他內容(查詢、窗體、報表、代碼等)。正確進行表設計的正式名稱是「資料庫規范化」。 本文簡要介紹資料庫規范化的基本概念和一些需要注意並力求避免的常見問題。 理解您的數據在設計表之前,應明確您打算如何處理數據,還要了解隨著時間的推移數據會發生什麼樣的變化。您所做的假設將會影響最終的設計。 您需要什麼樣的數據? 設計應用程序時,關鍵要了解設計的最終結果,以便確保您准備好所有必需的數據並知道其來源。例如,報表的外觀、每個數據的來源以及所需的所有數據是否都存在。對項目損失最大的莫過於在項目後期發現重要報表缺少數據。 知道需要什麼樣的數據後,就必須確定數據的來源。數據是否從其他數據源中導入?數據是否需要清理或驗證?用戶是否需要輸入數據? 明確所需數據的類型和來源是資料庫設計的第一步。 您打算如何處理這些數據?用戶是否需要編輯這些數據?如果需要,應如何顯示數據以便於用戶理解和編輯?有沒有驗證規則和相關的查找表?要求對編輯和刪除保留備份的數據輸入有沒有相關聯的審核問題?需要為用戶顯示哪些摘要信息?是否需要生成導出文件?了解這些信息後,就可以想像欄位之間是如何相互關聯的了。 數據之間如何相互關聯?將數據分組放入相關欄位(例如與客戶相關的信息、與發票相關的信息等),每個欄位組都代表要建立的表。然後考慮如何將這些表相互關聯。例如,哪些表具有一對多關系(例如,一個客戶可能持有多張發票)?哪些表具有一對一關系(這種情況下,通常會考慮將其組合到一個表中)? 隨著時間的推移數據會發生什麼樣的變化?設計表之後,常常會由於沒有考慮時間的影響而導致以後出現嚴重問題。許多表設計在當時使用時效果非常好,但是,常常會因為用戶修改數據、添加數據以及隨時間的推移而崩潰。開發人員經常會發現需要重新設計表的結構來適應這些變化。表的結構發生變化時,所有相關的內容(查詢、窗體、報表、代碼等)也必須隨之更新。理解並預測數據會隨時間推移發生哪些變化,可以實現更好的設計,減少問題的發生。 學習如何使用查詢了解如何分析和管理數據同樣很重要。您應該深刻理解查詢的工作原理,理解如何使用查詢在多個表之間鏈接數據,如何使用查詢對數據進行分組和匯總,以及如何在不需要以規范化格式顯示數據時使用交叉表查詢。 好的數據設計的最終目標就是要平衡兩個需要:既要隨著時間的推移有效地存儲數據,又要輕松地檢索和分析數據。理解查詢的功能對正確設計表很有幫助。 資料庫規范化概念這部分介紹資料庫規范化所涉及的基本概念,而不是對資料庫規范化進行理論性的探討。如何在您的實際情況中應用這些概念可能會隨著應用程序需要的不同而有所變化。這部分的目的是理解這些基本概念、根據實際需要應用它們,並理解偏離這些概念將會出現哪些問題。 將唯一信息存儲在一個地方大部分資料庫開發人員都理解資料庫規范化的基本概念。理想情況下,您希望將相同的數據存儲在同一個地方,並在需要引用時使用 ID 來進行引用。因此,如果某些信息發生了變化,則可以在一個地方進行更改,而整個程序中的相應信息也會隨之更改。 例如,客戶表會存儲每個客戶的記錄,包括姓名、地址、電話號碼、電子郵件地址以及其他特徵信息。客戶表中可能包含唯一的 CustomerID 欄位(通常是 Autonumber 欄位),這個欄位即該表的主鍵欄位,其他表使用它來引用該客戶。因此,發票表可以只引用客戶的 ID 值,而不是在每張發票中存儲客戶的所有信息(因為同一個客戶可能會持有多張發票),這樣利用客戶的 ID 值即可從客戶表中查找客戶的詳細信息。使用 Access 中功能強大的窗體(使用組合框和子窗體),可以輕松地完成這項工作。如果需要修改客戶信息(例如新增電話號碼),只需在客戶表中修改,應用程序中引用該信息的任何其他部分都會隨之自動更新。 使用正確規范化的資料庫,通過簡單的編輯即可輕松處理數據隨時間推移而發生的更改。使用未正確規范化的資料庫,通常需要利用編程或查詢來更改多條記錄或多個表。這不僅會增加工作量,還會增加由於未正確執行代碼或查詢而導致數據不一致的可能性。 記錄是免費的,而新欄位非常昂貴理想的資料庫應該只需要隨著時間的推移添加新的記錄,資料庫表應該能夠保存大量記錄。但是,如果您發現需要增加更多欄位,則可能會碰到設計問題。 電子表格專家經常會遇到上述問題,因為他們習慣於按照設計電子表格的方式設計資料庫。設計經常隨時間變化的欄位(例如,年、季度、產品和銷售人員)需要在將來添加新欄位。而正確的設計應該是轉換信息並將隨時間變化的數據放在一個欄位內,這樣就可以添加更多記錄。例如,只需創建「年」欄位,然後在該欄位中輸入各記錄相應的年份值即可,無需為每年創建一個單獨的欄位。 增加額外的欄位可能會產生問題,因為表結構的變化會對應用程序的其他部分產生影響。在表中添加更多欄位時,依賴該表的對象和代碼也需要更新。例如,查詢需要獲取額外的欄位,窗體需要顯示這些欄位,而報表則需要包含這些欄位,等等。但是,如果數據已經規范化,則現有對象會自動檢索新數據,並正確計算或顯示這些數據。查詢功能尤其強大,因為它允許您按「年」欄位進行分組,以逐年顯示摘要(不管表中包含哪些年份)。 但是,數據規范化並不意味著不能顯示或使用隨時間而變化或依賴時間的欄位。需要瀏覽或顯示這類信息的開發人員通常可以使用交叉表查詢來達到這一目的。如果您不熟悉交叉表查詢,應該學習如何使用它們。雖然它們與表有所不同(尤其是用戶無法編輯交叉表查詢的結果),但它們的確可以用於在數據表中顯示信息(最多可以達到 255 個欄位)。如果要在報表中使用它們,則會更加復雜,因為報表需要包含額外的或不斷變化的欄位名。這就是為什麼大多數報表將數據作為獨立的分組(而不是獨立的列)顯示的原因。對於那些別無選擇的情況,您必須花時間去解決這個問題。希望所有人都能夠理解這種決定會隨著時間的變化對其他資源產生的影響。 這就是為什麼增加記錄是免費的(這是資料庫的巨大優勢)而增加欄位是如此昂貴的原因。
㈣ 電腦提示「未能保存本地策略資料庫」怎麼回事,如何處理
電腦提示「未能保存本地策略資料庫」,是設置錯誤造成的,解決方法如下:
1、首先打開電腦,在win10系統桌面上,開始菜單滑鼠右鍵,運行。
㈤ asp請假系統我寫了申請頁面 怎麼在保存後把信息存入資料庫做出審核頁面實現審批
1.申請頁面:shengqing.asp
<script language="javascript">
function checkForm(form1){
if(form1.S_name.value == "")
{
alert("請輸入申請人。");
form1.S_name.focus();
return false;
}
if(form1.num.value == "")
{
alert("請輸入請假天數。");
form1.num.focus();
return false;
}
if(form1.S_content.value == "")
{
alert("請輸入備注。");
form1.S_content.focus();
return false;
}
return true;
}
</script>
<table width="99%" border="0" align="left" cellpadding="0" cellspacing="3" style="text-align:left;">
<form method="post" action="'shengqingSave.asp" onSubmit="return checkForm(this);">
<tr>
<td width="23%" height="25" align="right">申請人:</td>
<td width="77%" height="-6"><font>
<input type="text" name="S_name" size="42" maxlength="250" style="border:1px solid #CCCCCC;">
</font>* </td>
</tr>
<tr>
<td height="25" align="right">請假天數: </td>
<td height="25"><input type="text" name="num" size="42" maxlength="250" style="border:1px solid #CCCCCC;">
</td>
</tr>
<tr>
<td height="25" align="right">備註:</td>
<td height="25"><textarea rows="7" name="S_content" cols="45" style="border:1px solid #CCCCCC;"></textarea>*</td>
</tr>
<tr>
<td width="23%" height="0" valign="top"></td>
<td width="77%" height="0" valign="top"><input type="submit" value=" 提交申請 "name="cmdOk" style="border:1px solid #CCCCCC; margin-right:7px;"/>
<input type="reset" value=" 重寫 " name="cmdReset" style="border:1px solid #CCCCCC;"/>
</td>
</tr>
</form>
</table>
2.寫入資料庫代碼 shengqingSave.asp
建個表:shengqingjilu
欄位:
id 編號
S_name 申請人
num 請假天數
S_content 備注
S_ok 審批判斷
S_time 申請時間
等根據你需要再加
<%@LANGUAGE="VBSCRIPT" CodePage="65001"%>
<%
Response.CharSet = "utf-8"
Session.CodePage = "65001"
%>
<!--#include file="Inc/Conn.asp"-->
<%
Set rs = Server.CreateObject("ADODB.Recordset")
sql="select top 1 * from shengqingjilu"
rs.open sql,conn,1,3
rs.addnew
rs("S_name")=trim(request.form("S_name"))
rs("num")=trim(request.form("num"))
rs("S_content")=trim(request.form("S_content"))
rs("S_ok")=false '待審批 ,當為true 通過審批 否則為 未通過審批 根據這個進行判斷
rs.Update
rs.Close
set rs=nothing
response.write "<script language=javascript>alert('恭喜您,申請成功!');"
response.write "this.location.href='shengqing.asp
';</script>"
response.End
%>
3.申請記錄/審核頁面:
<%
sqlstr="select * from shengqingjilu order by id desc"
set rs=server.CreateObject("adodb.recordset")
rs.open sqlstr,conn,1,1
if rs.eof or rs.bof then
response.Write "<span style='color:#ff0000;font-size:12px;'>還沒有申請信息!</span>"
else
do while not (rs.eof or rs.bof)
%>
<table width="96%" border=0 align="center" cellPadding=0 cellSpacing=0 style="border-bottom:1px solid #999999; margin:3px; margin-bottom:15px;">
<tr><td width="58%"> </td><td width="42%">[<a style="color:#FF0000" href="shengqing_del.asp?id=<%=rs("id")%>">刪除</a>] 時間:<%=rs("s_time")%> </td></tr>
<tr><td colspan="2"><font style="font-weight:bold;">
<%
response.Write("<A title=修改內容 HREF='shengqing_edit.asp?id="&rs("id")&">編輯</A> ")
if rs("S_ok")=true then
response.Write("<a href='?action=s_ok&s_ok=false&id="&rs("id")&"'><font color=blue>已通過審批</font></a>")
else
response.Write("<a href='?action=s_ok&s_ok=true&id="&rs("id")&"'><font color=black>未通過審批</font></a>")
end if
%>
</a>
</td></tr>
<tr><td colspan="2"><font style="font-weight:bold;">申請人</font>:<%=rs("S_name")%></td></tr>
<tr><td colspan="2"><font style="font-weight:bold;">請假天數</font>:<%=rs("num")%></td></tr>
<tr><td colspan="2"><font style="font-weight:bold;">備注</font>:<%=rs("S_content")%></td></tr>
</table>
<%
rs.movenext
loop
end if
%>
4.審批代碼
if request("action")="s_ok" then
strIDs=request("id")
s_ok=request("s_ok")
strSQL="update shengqingjilu set s_ok="&s_ok&" Where id=" & strIDs & ""
conn.execute strSQL
end if
㈥ 如何通過SQL語句設置資料庫登錄審核的狀態
剛好上次講三層架構.有現成的例子
以一個驗證登陸為例子
這里是界面層一般叫UIL
protected void Button1_Click(object sender, EventArgs e)
{
List<User> Users = BAL.GetUserInfo(txtUserName.Text,txtPassword.Text);
if(Users.Length > 0)
{
Response.Write("登陸成功");
}
else
{
Response.Write("登陸失敗");
}
}
以下是邏輯層代碼,業務邏輯層一般叫BLL
public static List<User> GetUserInfo(string user,string password)
{
string newPassword = GetMD5Hash(password); //這里對密碼進行加密處理,資料庫中存放的是經過MD5加密後的密,業務邏輯層一般都是處理復雜的邏輯.例如加密邏輯
List<User> Users = DAL.GetUserInfo(user,newPassword);
return Users;
}
以下是數據訪問層代碼,數據訪問層一般叫DAL
public static List<User> GetUserInfo(string user,string password)
{
List<User> Users = new List<User>();
string sql = "select * from User where Password = '"+password+"' and User = '"+user+"'"; //寫where子句的時候把Password放前面.因為Password經過加密,所以可以防止SQL注入攻擊
SqlDataAdapter da = new SqlDataAdapter(sql,"這里是資料庫連接字元串");
DataSet ds = new DataSet();
da.Fill(ds);
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
User user = new User(ds.Tables[0].Rows[i]["ID"].ToString(),ds.Tables[0].Rows[i]["User"].ToString(),ds.Tables[0].Rows[i]["Password"].ToString());
Users.Add(user);
}
return Users;
}
還會有一個Model層.叫做模板層.是數據表結構的印射.Model層是共用層,其他三層都要用到.
比如資料庫中有張表User,裡面有3個欄位ID,User,Password
那麼在模板層中應該有一個類,資料庫中User表的一行對應一個User對象,一張表對應User對象的集合.
public class User
{
string ID;
string User;
string Password;
//重載構造函數
User(string id,string user,string password)
{
this.ID=id;
this.User=user;
this.Password=password;
}
}
㈦ 將sharepoint表單庫中的表單審批完成之後自動保存到sql server資料庫中問題
這個很容易。你先建一個外部內容類型(內含外部數據源),然後建立外部列表。最後通過工作流在外部列表中賦值即可。
㈧ 資料庫處理問題(審批流程定義)
1、用戶表
用戶ID
用戶角色(1:業務員,2:經理,3:總經理,4:總裁。。。)
用戶姓名
2、客戶表
客戶ID
客戶名稱
3、業務員客戶表
用戶ID(其實就是用戶表裡的用戶角色為業務員的用戶)
客戶ID
4、業務員移交客戶申請表
申請人用戶ID
申請移交的客戶ID
審批狀態(0:審批中,1:已審批。。。。)
移交後用戶ID
5、請假表
用戶ID
請假開始時間
請假結束時間
請假類別(1:事假、2:病假、3:婚假。。。。。)
審批狀態(0:審批中,1:已審批。。。。)
6、周報表
用戶ID
周報月份
審批狀態(0:臨時保存,1:已提交,2:經理已審批,3:總經理已審批。。。。)
㈨ 如何對資料庫進行加密和審核的安全設置
在對資料庫進行寫入時,把原數據加密後的數據寫到資料庫。調用時,先讀取出來,然後解密讀取的數據,在調用。
比如,我往資料庫存放數據「abc」,我自己定義了,用 y代表a h代表b n代表c 那麼加密「abc」後就是「yhn」,把「yhn」存入資料庫中。這樣別人就算查看了 資料庫的內容 看到是「yhn」,不能知道原來的數據是什麼。你調用數據時,取出資料庫的進行解密為「abc」就行了
㈩ 如何實現資料庫存儲過程操作審計
--禁用C2 審核跟蹤和只限成功的登錄
EXEC sys.sp_configure N'c2 audit mode', N'0'
GO
RECONFIGURE WITH OVERRIDE
GO
USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'AuditLevel', REG_DWORD, 1
GO
SQLSERVER2008新增的審核功能
在sqlserver2008新增了審核功能,可以對伺服器級別和資料庫級別的操作進行審核/審計,事實上,事件通知、更改跟蹤、變更數據捕獲(CDC)
都不是用來做審計的,只是某些人亂用這些功能,也正因為亂用這些功能導致踩坑
事件通知:性能跟蹤
更改跟蹤:用Sync Services來構建偶爾連接的系統
變更數據捕獲(CDC):數據倉庫的ETL 中的數據抽取(背後使用logreader)
而審核是SQLSERVER專門針對資料庫安全的進行的審核,記住,他是專門的!