SQL SERVER資料庫使用問題處理

2021-07-30 11:03:44 字數 1546 閱讀 9716

1.離線不了或要等很久

select * from master.sys.sysprocesses where dbid=db_id('資料名')

然後會查詢到具體有哪個在連線到此資料庫

直接kill spid的具體數值就可以了

kill 51

有些使用者連線可以在kill掉後自動重建,但期間有一段時間,如果碰到這種情況,需要在執行完kill命令後立即執行離線操作

2.處理資料庫存在的孤立帳戶,通常由其它資料庫導進來的

檢視當前資料庫中是否存在孤立使用者,經過很多次的實驗後,我發現有那麼一條語句可以發揮作用,就是sp_change_users_login語句。

具體用法:

exec sp_change_users_login 'update_one', '使用者名稱', '登入名';

孤立帳戶,就是某個資料庫的帳戶只有使用者名稱而沒有登入名,這樣的使用者在使用者庫的sysusers系統表中存在,而在master資料庫的syslogins中卻沒有對應的記錄。

孤立帳戶的產生一般是一下兩種:

1.將備份的資料庫在其它機器上還原; 

2.重灌系統或sql server之後只還原了使用者庫 

解決方法是使用sp_change_users_login來修復。

sp_change_users_login的用法有三種

用法1: 

exec sp_change_users_login 'report'

列出當前資料庫的孤立使用者

用法2: 

exec sp_change_users_login 'auto_fix','使用者名稱'

可以自動將使用者名稱所對應的同名登入新增到syslogins中

用法3: 

exec sp_change_users_login 'update_one','使用者名稱','登入名'

將使用者名稱對映為指定的登入名。

3.還原資料庫時,因有其它人在使用,無法還原,顯示sql server資料庫備份還原後,在資料庫名稱後會出現「受限制訪問」字樣

關鍵sql語句:

alter database [datebase] set offline with rollback immediate

用完之後再

alter  database  [ datebase]  set   online  

將當前需要還原的資料進行offline,還原後,再將該資料庫online。

指令碼如下,先執行第一指令碼,還原成功後,執行第二指令碼。

1)alter database [datebase] set offline with rollback immediate

2)alter database [datebase] set online with rollback immediate

如果此時還原還是不行。可能是刪完程序馬上有新的程序連進來,

導致一直失敗。應用程式一直不停的進行資料庫鏈結。

這時,可以在單使用者下還原。

資料庫sqlserver的使用

一 使用模組介紹及安裝 1 python操作sqlserver所使用的模組是pymssql。2 pymssql安裝,直接使用pip install pymssql進行安裝。二 python操作sqlserver介紹 1 資料庫連線類及引數介紹 pymssql.connect sqlserver連線的...

IIS中SQL Server資料庫的安全問題

從codered到nimda等,一大堆蠕蟲把原來需要人工利用的漏洞都變成了程式自動利用了,大家還想去手工操作這些iis漏洞麼?讓我們調整重心,去看看伺服器常用的資料庫吧。一般 都是基於資料庫的,特別是asp php jsp這樣的用資料庫來動態顯示的 很多 可能多注意的是作業系統的漏洞,但是對資料庫和...

使用QT連線SqlServer資料庫

最近在專案中需要使用qt來對sqlserver進行操作,特此記錄,以便回憶。1.確保qt的安裝包裡已經載入sqlserver的驅動。以qt5.3為例,在目錄d qt 5.3 mingw482 32 plugins sqldrivers下,有相應的動態庫。2.在工程檔案 pro 裡加一行 qt sql...