sql追溯
❶ 資料庫審計系統是什麼,有什麼作用
資料庫審計是對資料庫訪問行為進行監管的系統,一般採用旁路部署的方式,通過鏡像或探針的方式採集所有資料庫的訪問流量,並基於sql語法、語義的解析技術,記錄下資料庫的所有訪問和操作行為,例如訪問數據的用戶(IP、賬號、時間),操作(增、刪、改、查)、對象(表、欄位)等。資料庫審計系統的主要價值有兩點,一是:在發生資料庫安全事件(例如數據篡改、泄露)後為事件的追責定責提供依據;二是,針對資料庫操作的風險行為進行時時告警。
二、資料庫審計怎麼審?
1、資料庫訪問流量採集
流量採集是資料庫審計系統的基礎,只有做到資料庫訪問流量的全採集,才能保證資料庫審計的可用性和價值,目前主要的流量採集方式主要有兩種:
鏡像方式:採用旁路部署通過鏡像方式獲取資料庫的所有訪問流量。一般適用於傳統IT架構,通過鏡像方式將所有訪問資料庫的流量轉發到資料庫審計系統,來實現資料庫訪問流量的獲取。
探針方式:為了適應「雲環境」「虛擬化」及「一體機」資料庫審計需求,基於「探針」方式捕獲資料庫訪問流量。適用於復雜的網路環境,在應用端或資料庫伺服器部署Rmagent組件(產品提供),通過虛擬環境分配的審計管理網口進行數據傳輸,完成資料庫流量採集。
探針式數據採集,還可以進行資料庫本地行為審計,包括資料庫和應用系統同機審計和遠程登錄後的客戶端行為。
2、語法、語義解析
SQL語法、語義的解析技術,是實現資料庫審計系統可用、易用的必要條件。准確的資料庫協議解析,能夠保障資料庫審計的全面性與易用性。全面的審計結果應該包括:訪問資料庫的應用層信息、客戶端信息、資料庫信息、對象信息、響應信息、登錄時間、操作時間、SQL響應時長等;高易用性的資料庫審計產品的審計結果和報告,應該能夠使用業務化的語言呈現出對資料庫的訪問行為,例如將資料庫中的要素客戶端IP、資料庫用戶、SQL 操作類型、資料庫表名稱、列名稱、過濾條件變成業務人員熟悉的要素:辦公地點、工作人員名稱、業務操作、業務對象、業務元素、某種類別的業務信息。這樣的是審計結果呈現即便是非專業的DBA或運維人員的管理者或業務人員也能夠看懂。
三、資料庫審計的價值?
1、資料庫相關安全事件的追溯與定責
資料庫審計的核心價值是在發生資料庫安全事件後,為追責、定責提供依據,與此同時也可以對資料庫的攻擊和非法操作等行為起到震懾的作用。資料庫自身攜帶的審計功能,不僅會拖慢資料庫的性能,同時也有其自身的弊端,比如高許可權用戶可以刪除審計日誌,日誌查看需要專業知識,日誌分析復雜度高等。獨立的資料庫審計產品,可以有效避免以上弊端。三權分立原則可以避免針對審計日誌的刪除和篡改,SQL語句解析技術,可以將審計結果翻譯成通俗易懂的業務化語言,使得一般的業務人員和管理者也能看懂。
2、資料庫風險行為發現與告警
資料庫審計系統還可以對於針對資料庫的攻擊和風險操作等進行實時告警,以便管理人員及時作出應對措施,從而避免數據被破壞或者竊取。這一功能的實現主要基於sql的語句准確解析技術,利用對SQL語句的特徵分析,快速實現對語句的策略判定,從而發現資料庫入侵行為、資料庫異常行為、資料庫違規訪問行為,並通過簡訊、郵件、Syslog等多種方式實時告警。
3、滿足合規需求
滿足國家《網路安全法》、等保規定以及各行業規定中對於資料庫審計的合規性需求。並可根據需求形成不同的審計報表,例如:綜合報表、合規性報表、專項報表、自定義報表等。
❷ SQL 重復循環查詢或追溯查詢問題
--SQLSERVER用遞歸
WITHTTAS
(SELECTNO1,NO2,NAME,STYLE,NO1ASF1,1ASF2
FROMA
WHERENO1NOTIN(SELECTNO2FROMA)
UNIONALL
SELECTA.NO1,A.NO2,A.NAME,A.STYLE,F1,F2+1ASFLEVEL
FROMA,TT
WHEREA.NO1=TT.NO2)
SELECTF1ASNO1,NO2,NAME,STYLE
FROMTTT1
WHEREEXISTS(SELECT1
FROM(SELECTF1,MAX(F2)ASF2FROMTTGROUPBYF1)T2
WHERET1.F1=T2.F1
ANDT1.F2=T2.F2)
ORDERBYNAME
❸ SQL資料庫還原問題,很急,求幫助
估計是SQL server的備份文件,
你在查詢分析器中執行下面的語句檢查一下就知道了:
restore verifyonly from disk='c:\你的文件'
還原的話,到企業管理器裡面去還原(不過你的文件這么小,不知道是否完全備份,如果不是完全備份,則不可還原)
還原資料庫
企業管理器
--右鍵"資料庫"
--所有任務
--還原資料庫
--"還原為資料庫庫"中輸入還原後的資料庫名
--還原選擇"從設備"--選擇設備--添加--添加你的備份文件--確定,回到資料庫還原的界面
--備份號--選擇內容--選擇你要恢復那次備份的內容
--選項--將"移至物理文件名"中的物理文件名修改為你的數據文件要存放的文件名
--如果要還原的資料庫已經存在,選擇"在現有資料庫上強制還原"-
-確定
如果不可以用上面的方法還原,說明這個備份文件不是完全備份
❹ SQL 追溯查詢寫個視圖表,
SQL Server 2005:
架構dbo的所有表
select t.[name] as tablename, s.[name] as [schema] from sys.tables as t,sys.schemas as s where t.schema_id = s.schema_id
and s.[name] = 'dbo'
架構dbo的所有視圖
select v.[name] as viewname, s.[name] as [schema] from sys.views as v,sys.schemas as s where v.schema_id = s.schema_id
and s.[name] = 'dbo'
❺ 想在查詢裡面把排班班次表的班次相對應到打卡時間上,請問各位大神如何寫SQL語句謝謝!!!
我以前搞過考勤系統。我把大概的思路說下,希望對你有幫助。
1,建立設定班別的table
2,增加班別的遲到早退時間欄位(小時,分鍾)
3,寫一個function,傳入刷卡小時和分鍾,當天班別。比較刷卡時間和班別的遲到早退時間,返回1(真)和0(假)(根據班別,查詢出對應的遲早早退時間。第一筆卡比較遲到,最後一筆卡比較早退)
4,區分這比卡是當天的,還是昨天的,如果是昨天的要追溯到昨天
5,寫一個function,傳入工號,日期,獲得該員工當天的班別
6,select 刷卡表,將遲到早退的function范圍值為1的記錄都找出來
❻ 如何追溯 PostgreSQL 慢查詢當時的狀態
在已經安裝了PostgreSQL的Linux上,使用下面的命令即可查詢安裝的版本:
psql --version
PostgreSQL是以加州大學伯克利分校計算機系開發的 POSTGRES,現在已經更名為PostgreSQL,版本 4.2為基礎的對象關系型資料庫管理系統(ORDBMS)。PostgreSQL支持大部分 SQL標准並且提供了許多其他現代特性:復雜查詢、外鍵、觸發器、視圖、事務完整性、MVCC。同樣,PostgreSQL 可以用許多方法擴展,比如, 通過增加新的數據類型、函數、操作符、聚集函數、索引。免費使用、修改、和分發 PostgreSQL,不管是私用、商用、還是學術研究使用。
❼ SQL Server資料庫,最通俗的解釋就是你入庫的單保存在資料庫上,以便以後要找某張單子可以從資料庫里找出
sql sever 資料庫系統是微軟公司開發的一套資料庫系統。
資料庫的概念如下
嚴格地說,資料庫是「按照數據結構來組織、存儲和管理數據的倉庫」。在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣的「倉庫」,並根據管理的需要進行相應的處理。例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種"資料庫",使其可以利用計算機實現財務、倉庫、生產的自動化管理。 J.Martin給資料庫下了一個比較完整的定義:資料庫是存儲在一起的相關數據的集合,這些數據是結構化的,無有害的或不必要的冗餘,並為多種應用服務;數據的存儲獨立於使用它的程序;對資料庫插入新數據,修改和檢索原有數據均能按一種公用的和可控制的方式進行。當某個系統中存在結構上完全分開的若干個資料庫時,則該系統包含一個「資料庫集合」。
定義2
資料庫是依照某種數據模型組織起來並存放二級存儲器中的數據集合。這種數據集合具有如下特點:盡可能不重復,以最優方式為某個特定組織的多種應用服務,其數據結構獨立於使用它的應用程序,對數據的增、刪、改和檢索由統一軟體進行管理和控制。從發展的歷史看,資料庫是數據管理的高級階段,它是由文件管理系統發展起來的。
定義3
(伯爾尼公約議定書專家委員會的觀點) 所有的信息(數據率檔)的編纂物,不論其是以印刷形式,計算機存儲單元形式,還是其它形式存在,都應視為「資料庫」。 數字化內容選擇的原因有很多,概括起來主要有: (1)存儲空間的原因。數字化的產品是通過網路被廣大用戶存取利用,而大家都知道數字化產品是存放在磁碟陣列上的,磁碟陣列由伺服器來管理,磁碟空間是有限的,伺服器的能力也是有限的,不可能無限量地存入數字資源,這就需要我們對文獻資源數字化內容進行選擇。 (2)解決數字化生產高成本和圖書館經費有限性之間矛盾的需要。幾乎沒有圖書館有充足的資源來對整個館藏進行數字化,內容選擇不可避免。 (3)數字資源管理的需要。技術的快速發展使數字化項目所生成的數字資源的生命周期越來越短,投入巨資進行數字遷移是延長數字資源生命的1個重要途徑,昂貴的維護成本就必須考慮數字化的內容選擇。 資料庫發展史資料庫技術從誕生到現在,在不到半個世紀的時間里,形成了堅實的理論基礎、成熟的商業產品和廣泛的應用領域,吸引越來越多的研究者加入。資料庫的誕生和發展給計算機信息管理帶來了一場巨大的革命。三十多年來,國內外已經開發建設了成千上萬個資料庫,它已成為企業、部門乃至個人日常工作、生產和生活的基礎設施。同時,隨著應用的擴展與深入,資料庫的數量和規模越來越大,資料庫的研究領域也已經大大地拓廣和深化了。30年間資料庫領域獲得了三次計算機圖靈獎(C.W. Bachman,E.F.Codd, J.Gray),更加充分地說明了資料庫是一個充滿活力和創新精神的領域。就讓我們沿著歷史的軌跡,追溯一下資料庫的發展歷程。 傳統上,為了確保企業持續擴大的IT系統穩定運行,一般用戶信息中心往往不僅要不斷更新更大容量的IT運維軟硬體設備,極大浪費企業資源;更要長期維持一支由資料庫維護、伺服器維護、機房值班等各種維護人員組成的運維大軍,維護成本也隨之節節高升。為此,企業IT決策者開始思考:能不能像擰水龍頭一樣按需調節的使用IT運維服務?而不是不斷增加已經價格不菲的運維成本。
定義4
資料庫(DataBase,DB)是一個長期存儲在計算機內的、有組織的、有共享的、統一管理的數據集合。她是一個按數據結構來存儲和管理數據的計算機軟體系統。資料庫的概念實際包括兩層意思: (1)資料庫是一個實體,它是能夠合理保管數據的「倉庫」,用戶在該「倉庫」中存放要管理的事務數據,「數據」和「庫」兩個概念結合成為資料庫。 (2)資料庫是數據管理的新方法和技術,他能更合適的組織數據、更方便的維護數據、更嚴密的控制數據和更有效的利用數據。
❽ SQL資料庫外鍵
創建外鍵時可以指定級聯刪除選項,設置後主表數據被刪除,從表數據也會被刪除,反之則不然。
參考:http://hi..com/zagelover/item/c0118adda8f92ef592a97475
sql外鍵約束NO ACTION,CASCADE,SET NULL,SET DEFAULT
NO ACTION
指定如果試圖刪除/修改某一行,而該行的鍵被其他表的現有行中的外鍵所引用,則產生錯誤並回滾 DELETE/UPDATE語句。
CASCADE、SET NULL 和 SET DEFAULT
允許通過刪除或更新鍵值來影響指定具有外鍵關系的表,這些外鍵關系可追溯到在其中進行修改的表。如果為目標表也定義了級聯引用操作,那麼指定的級聯操作也將應用於刪除或更新的那些行。不能為具有 timestamp 列的外鍵或主鍵指定 CASCADE。
ON DELETE CASCADE
指定如果試圖刪除某一行,而該行的鍵被其他表的現有行中的外鍵所引用,則也將刪除所有包含那些外鍵的行。
ON UPDATE CASCADE
指定如果試圖更新某一行中的鍵值,而該行的鍵值被其他表的現有行中的外鍵所引用,則組成外鍵的所有值也將更新到為該鍵指定的新值。 (如果 timestamp 列是外鍵或被引用鍵的一部分,則不能指定 CASCADE。 )
ON DELETE SET NULL
指定如果試圖刪除某一行,而該行的鍵被其他表的現有行中的外鍵所引用,則組成被引用行中的外鍵的所有值將被設置為 NULL。目標表的所有外鍵列必須可為空值,此約束才可執行。
ON UPDATE SET NULL
指定如果試圖更新某一行,而該行的鍵被其他表的現有行中的外鍵所引用,則組成被引用行中的外鍵的所有值將被設置為 NULL。目標表的所有外鍵列必須可為空值,此約束才可執行。
ON DELETE SET DEFAULT
指 定如果試圖刪除某一行,而該行的鍵被其他表的現有行中的外鍵所引用,則組成被引用行中的外鍵的所有值將被設置為它們的默認值。目標表的所有外鍵列必須具 有默認值定義,此約束才可執行。如果某個列可為空值,並且未設置顯式的默認值,則會使用 NULL 作為該列的隱式默認值。因 ON DELETE SET DEFAULT 而設置的任何非空值在主表中必須有對應的值,才能維護外鍵約束的有效性。
ON UPDATE SET DEFAULT
指 定如果試圖更新某一行,而該行的鍵被其他表的現有行中的外鍵所引用,則組成被引用行中的外鍵的所有值將被設置為它們的默認值。目標表的所有外鍵列必須具 有默認值定義,此約束才可執行。如果某個列可為空值,並且未設置顯式的默認值,則會使用 NULL 作為該列的隱式默認值。因 ON UPDATE SET DEFAULT 而設置的任何非空值在主表中必須有對應的值,才能維護外鍵約束的有效性。
❾ 遞歸中 知道子節點如何去追溯根節點
一條顯性語句出不來的;
但是如果您能確定當前節點的級別N,那麼可以在SQL語句的上的外層套加N-1次的遞歸語句;這樣還是可以出來的;如果您的數據量大,而且用戶多,倒是可以考慮採用上面的方法,而且級別層測越多越是有優勢;因為遞歸調用每次都要打開資料庫、掃描數據;
❿ 不知道數據在sql server哪一個表內,如何查詢。
其實有一種很簡單的辦法,只要很熟悉業務的邏輯流程的話,很容易就找到想要的表名和欄位名。首先找到你顯示數據的地方,這個地方總會有業務流程的入口或出口,以此為突破口,追溯業務流程,尋找與資料庫有關的程序,一般是牽扯到sql語句,而這時候你再去看這條語句你就會發現你想要的東西